面试宝典基础

设计模式 - 说说你对设计原则的理解

2019-03-04  本文已影响3人  撸帝

学习完整课程请移步 互联网 Java 全栈工程师

口诀

为了便于记忆,我们可以使用一个口诀来记忆面向对象设计原则:开口合里最单依

开闭原则(Open-Closed Principle, OCP)

一个软件实体应当对扩展开发,对修改关闭.说的是,再设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展.换言之,应当可以在不必修改源代码的情况下改变这个模块的行为,在保持系统一定稳定性的基础上,对系统进行扩展。这是面向对象设计(OOD)的基石,也是最重要的原则。

接口隔离原则(Interface Segregation Principle, ISP)

组合/聚合复用原则(Composite/Aggregate Reuse Principle,CARP)

在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新的对象通过这些向对象的委派达到复用已有功能的目的.这个设计原则有另一个简短的表述:要尽量使用合成/聚合,尽量不要使用继承.

里氏代换原则(Liskov Substitution Principle,LSP)

由 Barbar Liskov (芭芭拉.里氏) 提出,是继承复用的基石。

所有引用基类的地方必须透明的使用其子类的对象。只要父类能出现的地方子类也可以出现,而且替换为子类不会产生任何错误或异常,但是反过来就不行,有子类出现的地方,父类未必就能适应。

最少知识原则(Least Knowledge Principle,LKP)

一个对象应当对其他对象有尽可能少的了解.

没有任何一个其他的 OO 设计原则象迪米特法则这样有如此之多的表述方式,如下几种:

就是说,如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用,如果其中的一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。

单一职责原则(Simple responsibility pinciple,SRP)

就一个类而言,应该仅有一个引起它变化的原因,如果你能想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责.应该把多于的指责分离出去,分别再创建一些类来完成每一个职责.

依赖倒置原则(Dependence Inversion Principle)

要求客户端依赖于抽象耦合.

采用依赖倒置原则可以减少类间的耦合性,提高系统的稳定,降低并行开发引起的风险,提高代码的可读性和可维护性。

上一篇下一篇

猜你喜欢

热点阅读