设计模式原则 价值综合解析

概述
1.开闭原则(Open Close Principle)
解释:对扩展开放,对修改关闭。
2里氏代换原则(Liskov Substitution Principle)
解释:任何基类可以出现的地方,子类一定可以出现
3依赖倒转原则(Dependence Inversion Principle)
解释:依赖于抽象而不依赖于具体
4接口隔离原则(Interface Segregation Principle)
解释:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。使用多个专门的接口比使用单一的总接口要好。
5迪米特法则,又称最少知道原则(Demeter Principle)
解释:一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立。
6合成复用原则(Composite Reuse Principle)
解释:尽量使用合成/聚合的方式,而不是使用继承。

举例解析
1开闭原则2里氏代换原则都是处理好共性和个性的问题。
1.把共性的定义成公共接口,可以公共继承来扩展机能。而不用修改继存机能。
2.处理好多了共性的机能,那么使用父类就是调用继承机能,如果换成之类,也保证在既有接口协议的基础上运行。不会有异常的行为

3依赖倒转的原则,就是先定义类间接口,系统依赖于接口,接口就是共性,就是基础,就是公共原则,就是公共的协议。
那么具体呢,具体可以在共性协议的基础上做自己个性的事情。在协议范围内无限自由。
具体的应用就是,先设计一个抽象层,具体的实现都在这个抽象框架的基础上去进行。有点都是无论具体的类怎么的变化,都能保证系统有一个稳定的抽象关系。让自由和束缚有一个最合理的调节点。

4接口隔离原则,接口定义要专,要小。别然依赖变得臃肿,举个反例:A和B都依赖于C,A依赖C的a机能,B依赖C的b机能,这时候C想省点事,提供一个ab机能,他俩谁都能用,这是不行的,这个表面上好像减少了类的依赖,但实际上却是加粗了依赖的接口。

5迪米特法则,就是让类间的关系尽量的少,如果A和B间的关系很少,只有一个接口依赖,但是A和B都和C的接口依赖挺多,那么就将A和B的关系依赖转接给C,有C来承担A和B的交互。有点是减少依赖的数。中介者模式就是这个模式的典型运用。
迪米特法则,减少的是减少依赖的数,接口隔离减少的是依赖的量。接口隔离是把接口变多表小,迪米特法则是把类的关系表少。接口隔离更多的设计是在业务层的机能分割上,迪米特法则是在设计层面,需要更多主动设计的成分。

6合成复用原则,就是尽量多用组合,少用继承,这有点很明显,组合的关系后更灵活,设计模式用的桥接模式就是很好的该原则的运用。
为什么不用继承呢,举例:如果A要用两个机能,一个a1,一个a2,那么写一个A实现a1,a2不就行了吗,这时候,有需要a3的机能了,这时候我再B继承A然后实现a3,那么调用B就可以获得a1,a2,a3的机能了,也挺好,这时候,又有需求了,C类要用a3的机能但是不需要a1,a2这么办呢,让C继承B就行类被,可以,那么a1,a2对于C来说是无用的机能。

开闭选择,里氏代换,是解决共性个性的切割问题,然后将关系定义为接口(依赖倒转),合理的切割接口(接口隔离),用一些手段消除若连接(迪米特),尽量用组合的方式组合机能(合成复用原),保证机能小且灵活。

猜你喜欢

转载自blog.csdn.net/xie__jin__cheng/article/details/88396744
今日推荐