定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。 问题由来:在软件的生命周期内,因为变化、升级和维护等原因需要对软件原有代码进行修改时,可能会给旧代码中引入错误,也可能会使我们不得不对整个功能进行重构,并且需要原有代码经过重新测试。 解决方案:当软件需要变化时,尽量通过扩展软件实体的行 ...
分类:
其他好文 时间:
2017-12-28 23:27:34
阅读次数:
221
定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。 问题由来:类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不需要的方法。 解决方案:将臃肿的接口I拆分为独立的几个接口,类A和类C分别与他们需要的 ...
分类:
其他好文 时间:
2017-12-28 23:23:20
阅读次数:
201
定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。 问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。 解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能 ...
分类:
其他好文 时间:
2017-12-27 11:49:15
阅读次数:
111
1、开闭原则(Open Close Principle) 开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点 ...
分类:
其他好文 时间:
2017-12-11 16:43:49
阅读次数:
130
定义: 一个对象应该对其他对象保持最少的了解。 问题由来: 类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。 解决方案: 尽量降低类与类之间的耦合。 PS: 自从我们接触编程开始,就知道了软件编程的总的原则:低耦合,高内聚。 无论是面向过程编程还是面向对象编程,只有使 ...
分类:
其他好文 时间:
2017-11-29 22:46:03
阅读次数:
275
定义: 一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。 问题由来: 在软件的生命周期内,因为变化、升级和维护等原因需要对软件原有代码进行修改时,可能会给旧代码中引入错误,也可能会使我们不得不对整个功能进行重构,并且需要原有代码经过重新测试。 解决方案: 当软件需要变化时,尽量通过扩展软件实 ...
分类:
其他好文 时间:
2017-11-29 22:43:20
阅读次数:
175
单一职责定义: 不要存在多于一个导致类变更的原因,通俗的说,即一个类只负责一项职责。 问题由来: 类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。 解决方案: 遵循单一职责原则。分别建立两个类T1、T2,使T1完 ...
分类:
其他好文 时间:
2017-11-29 16:09:42
阅读次数:
108
1.单一职责原则(Single Responsibility Principle),简称SRP 定义:应该有且仅有一个原因引起类的变更。 2.里氏替换原则(Liskov Substitution Principle),简称LSP 定义:如果多每一个类型为S的对象o1,都有类型为T的对象o2,使得以T ...
分类:
其他好文 时间:
2017-11-28 17:19:47
阅读次数:
163
接下来简单总结一下设计模式的六大基本原则: 1.开闭原则: 对拓展开放,对修改关闭(对程序拓展时不会修改原有代码,为了达到这样的效果,需要使用接口和抽象类) 2.里氏替换原则:对任何基类出现的地方,子类一定可以替换出现 3.依赖倒置原则:在开闭原则的基础上,针对接口编程,依赖抽象类而不去依赖具体的类 ...
分类:
其他好文 时间:
2017-11-21 21:59:37
阅读次数:
146
设计模式六大原则(1):单一职责原则 定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。 问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。 解决方案:遵循单一职责原则。分别建立两 ...
分类:
其他好文 时间:
2017-11-21 10:42:35
阅读次数:
137