Java设计原则 - 开闭原则
2018-03-16 09:32
225 查看
六大设计原则
Java设计原则 - 单一职责原则Java设计原则 - 里氏替换原则
Java设计原则 - 依赖倒置原则
Java设计原则 - 接口隔离原则
Java设计原则 - 迪米特法则
Java设计原则 - 开闭原则
定义
一个软件实体如类、模块和函数应该对扩展开放,对修改关闭在所有设计原则的定义中,开闭原则的定义是最模糊的,只告诉设计软件时,应该对扩展开放,对修改关闭。OK,这样的原则,说等于没说?!
其实不然,我觉得开闭原则,是我们设计软件的最终遵循的原则。我们不放回头看看之前说的五个原则,你会发现每个原则都是尽量做到对扩展开放,对修改关闭的效果。
回顾
在此,我们回顾一下之前学过的五个原则:单一职责原则
一个类应该只负责一项职责,尽量做使类变更的原因只有一个。如果类出现职责扩散,考虑职责划分,由多个类去负责。保持原有的职责不变(对修改关闭),增加类去负责扩散的职责(对扩展开放),这正符合开闭原则。
里氏替换原则
父类存在的地方,由子类代替之后,程序运行的行为不变。客户类中如果使用父类定义,当需要代替为子类时,客户类可以不用修改任何代码。增加子类(对扩展开放),用子类代替父类,客户类不用修改代码(对修改关闭),这也符合开闭原则。
依赖倒置原则
高层模块不应该直接依赖底层模块,应该通过依赖抽象和底层模块产生依赖关系。高层模块不应该依赖底层模块具体某各类,应该依赖底层模块某个抽象类或接口,这样当底层模块扩展时(对扩展开放),只要还符合抽象类或接口的规范,高层模块不用做任何修改(对修改关闭),也是符合开闭原则的。
接口隔离原则
客户类不应该依赖它不需要的接口。依赖几个专用的接口要比依赖一个综合的接口更灵活,通过分散定义多个接口,可以预防外来变更的扩散,这也是符合开闭原则的。
迪米特法则(最少知道原则)
只与朋友类通信,不与陌生类说话,但是也不能与朋友类太熟悉。减少对陌生类的依赖,不论陌生类怎么扩展(对扩展开放),对客户类不会有任何影响(对修改关闭);也不要知道太多朋友类细节,细节由朋友类自己管理,无论怎么修改细节(对扩展开发),客户类值调用最终实现的方法,当然也不会受影响(对修改关闭)。
相关文章推荐
- java设计六大原则之开闭原则(OCP)
- java设计原则 第五篇----开闭原则【Open Close Principle 】
- Java设计原则—开闭原则(转)
- java设计原则之开闭原则 (转载)
- [设计模式]Java程序设计原则
- 设计模式六大原则(6):开闭原则
- JAVA的设计原则
- 黑马程序员--面向对象的设计原则--java学习日记5(扩展知识)
- 设计原则——开闭原则
- Java设计模式原则
- 面向对象的设计原则---开闭原则(原出处:不详)
- Java中的24种设计模式与7大原则
- Java设计模式-26-开闭原则
- Java设计模式及六大原则
- JAVA与模式学习笔记之设计原则
- 简单讲解Java设计模式编程中的单一职责原则
- Java常用的设计模式01:设计模式的分类和原则
- 根据java的设计原则、设计模式实现了一个信息发送和接收的例子
- 浅谈Java设计模式之开放封闭原则
- java设计模式六大原则(3):依赖倒置原则