设计模式之六大原则
2016-02-04 15:13
232 查看
使用设计模式的根本原因是为了代码复用,增加可维护性。那么怎么才能实现代码复用呢?这里有几个原则: "开-闭"原则、里氏代换原则。设计模式就是实现了这些原则,从而达到了代码复用、增加可维护性的目的。
"开-闭"原则
定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。 开闭原则无非就是想表达这样一层意思:用抽象构建框架,用实现扩展细节。因为抽象灵活性好,适应性广,只要抽 象的合理,可以基本保持软件架构的稳定。而软件中易变的细节,我们用从抽象派生的实现类来进行扩展,当软件需 要发生变化时,我们只需要根据需求重新派生一个实现类来扩展就可以了。当然前提是我们的抽象要合理,要对需求 的变更有前瞻性和预见性才行。
里氏转换原则
定义:如果调用的是父类的话,那么换成子类也完全可以运行。 当使用继承时,遵循里氏替换原则。类B继承类A时,除添加新的方法完成新增功能外,尽量不要重写父类A的方法, 也尽量不要重载父类A的方法。父类中凡是已经实现好的方法(相对于抽象方法而言),实际上是在设定一系列的规 范和契约,虽然它不强制要求所有的子类必须遵从这些契约,但是如果子类对这些非抽象方法任意修改,就会对整个 继承体系造成破坏。而里氏替换原则就是表达了这一层含义。
迪米特原则
定义:一个对象应该对其他对象保持最少的了解。 迪米特法则也叫做做最少知识原则,其核心精神是:不和陌生人说话,通俗之意是一个对象对自己需要耦合关联调用 的类应该知道的更少。这样会导致类之间的耦合度降低,每个类都尽量减少对其他类的依赖,因此,这也很容易使得 系统的功能模块相互独立,之间不存在很强的依赖关系。
单一职责原则
定义:一个类只负责一项职责。 单一职责原则的核心精神是:一个类,或者一个接口,最好只做一件事情,当发生变化时,他只能受到单一的影响; 因为职责过多,可能引起变化的原因将会很多,这样导致职责和功能上的依赖,将严重影响其内聚性和耦合度,混乱 由此而生。
依赖倒转原则
定义: 高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。 依赖倒置原则基于这样一个事实:相对于细节的多变性,抽象的东西要稳定的多。以抽象为基础搭建起来的架构比 以细节为基础搭建起来的架构要稳定的多。
接口隔离原则
定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。 定制服务的例子,每一个接口应该是一种角色,不多不少,不干不该干的事,该干的事都要干。
相关文章推荐
- BZOJ3230: 相似子串
- Maven--(一个坑)在settings.xml文件中添加mirrors导致无法新建Maven项目
- 动态加载js文件的jsLoader代码
- C语言中输入值时要注意一些内容
- DBA解题集:也谈闭环时
- JavaSE-泛型机制
- 最全Android开发常用工具类
- hadoop命令详解
- 滑动窗口联系
- Android 自定义扩展控件 一:ClearEditText
- 【Android】3.16 离线地图功能
- 两个任意长度的长整数相乘(华为oj,C++)
- 写在农历丙申年的开端
- Linux下阅读MHT文件
- JDK、J2EE、J2SE、J2ME的区别
- C++中字符串查找操作的两则实例分享
- Python 15.1 SMTP 发送邮件
- 推荐7款用于PHP的代码调试工具
- 系统学习机器学习之模型诊断与调试
- hdu 5195 DZY Loves Topological Sorting【拓扑排序+优先队列+邻接表】