博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面向对象设计基本原则
阅读量:2426 次
发布时间:2019-05-10

本文共 1075 字,大约阅读时间需要 3 分钟。

设计之殇

软件设计的最大天敌是变化, 这里的变化并不仅仅指的是需求的变化,人员的变化等具体某一领域的变化,而是一种宏观上的表述,所有不确定的都可以认为是变化。为了提升复用性,抵御变化,人们根据建筑领域的经验,将长期软件开发中的一些经典设计提炼为一套方法论,取名为设计模式。

设计模式

设计模式的一般定义如下: 设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结,使用设计模式是为了可重用代码、让代码更容易被他人理解并且保证代码可靠性。

牛顿曾经说过:“我之所以看得远,是因为站在巨人的肩上”。设计模式的出现可以让我们站在前人的肩膀上,通过一些成熟的设计方案来指导新项目的开发和设计,以便于我们开发出具有更好的灵活性和可扩展性,也更易于复用的软件系统。

面向对象设计基本原则为支持可维护性复用性而诞生。它们是从众多设计模式中总结出的指导原则。同时也是评价一个设计模式的重要指标。因此学习好这些基本原则对于掌握设计模式非常重要。

基本原则

1.依赖倒置原则(Dependence Inversion Principle,简称DIP)

  • 高层模块不应该依赖于低层模块,二者都应该依赖与抽象(稳定)。
  • 抽象(稳定)不应该依赖于实现细节(变化),实现细节应该依赖于抽象(稳定)。

2.开放封闭原则(Open Close Principle,简称OCP)

  • 对扩展开放,对更改封闭。
  • 类模块应该是可扩展的,但是不可修改。

3.单一职责原则(Single Responsibility Principle,简称SRP)

  • 一个类应该仅有一个引起它变化的原因。
  • 类的职责应该单一。

4.Liskov替换原则(Liskov Substitution Principle,简称LSP)

  • 子类必须能够替换它们的基类。

5.接口隔离原则(Interface Segregation Principle,简称ISP)

  • 接口小而完备。
  • 不应该强迫客户程序依赖它们不用的方法。

6.迪米特法则(Law of Demeter,简称LoD)

  • 一个软件实体应当尽可能少地与其他实体发生相互作用

总结

最后总结一下如何去遵守这些原则。对这些原则的遵守并不是是和否的问题,而是多和少的问题,也就是说,我们一般不会说有没有遵守,而是说遵守程度的多少。任何事都是过犹不及,设计模式也是一样,制定这些原则的目的并不是要我们刻板的遵守他们,而需要根据实际情况灵活运用。对他们的遵守程度只要在一个合理的范围内,就算是良好的设计。切记具体问题具体分析

转载地址:http://mgcmb.baihongyu.com/

你可能感兴趣的文章
利用序列化实现对象的拷贝
查看>>
is-a,has-a,like-a是什么
查看>>
简单工厂、工厂、抽象工厂的对比
查看>>
J2EE的体系架构——J2EE
查看>>
对于关系型数据库中的索引的基本理解
查看>>
索引,主键,唯一索引,联合索引的区别
查看>>
剪桌腿的最小代价
查看>>
Zookeeper原理架构
查看>>
利用ZooKeeper简单实现分布式锁
查看>>
Lock、ReentrantLock、synchronized
查看>>
Java过滤器与SpringMVC拦截器之间的关系与区别
查看>>
Java中的String为什么是不可变的?
查看>>
剑指offer二叉搜索树与双向链表
查看>>
LeetCode 81. 搜索旋转排序数组 II(头条)
查看>>
LC 42. 接雨水 + LC 11. 盛最多水的容器
查看>>
腾讯2017 秋招+暑期实习 笔试(编码;构造回文;字符移位;有趣的数字)
查看>>
LC 901. 股票价格跨度 LC 739. 每日温度
查看>>
【Redis深入】字典rehash图解
查看>>
java equals方法和hashCode方法
查看>>
Redis的底层数据结构(6种)
查看>>