1、开闭原则
开闭原则(软件开发-终极目标):
针对系统功能的后期扩展维护,需要提供新增预留,禁止修改预留。(即:软件实体应当对扩展开放(提供方),对修改(调用方)关闭)
功能特点:
1. 对软件测试的影响
软件遵守开闭原则的话,软件测试时只需要对扩展的代码进行测试就可以了,因为原有的测试代码仍然能够正常运行。
2. 可以提高代码的可复用性
粒度越小,被复用的可能性就越大;在面向对象的程序设计中,根据原子和抽象编程可以提高代码的可复用性。
3. 可以提高软件的可维护性
遵守开闭原则的软件,其稳定性高和延续性强,从而易于扩展和维护。
2、里氏替换原则
里氏替换原则:
主要告诉了我们继承的弊端,继承实际上是实现了规范和契约,子类如果对父类的方法,随意重写,那么很可能
对整个继承体系造成巨大的影响;如果基类修改,那么势必会影响所有的子类,另继承耦合性太强,使用集成的使用尽量不要
重写父类的方法。
3、 依赖倒转原则
依赖倒转原则:
即,面向接口编程;高层模块不应该依赖低层的模块,抽象(抽象:接口或者抽象类)不应该依赖细节(细节就是指:具体的实现类),
细节应该依赖抽象;相对于细节的多变性,抽象的东西要稳定的多,以抽象为基础的框架要比以细节为基础的框架稳定的多,另:使用接口最
好的是制定规范,具体的细节交给他们的实现类。
4、接口隔离原则
接口隔离原则:
一个类不应该依赖它不需要的类,一个类对另一个类的依赖应该建立在最小接口上。
5、迪米特法则原则
迪米特法则原则(最少知道原则):
一个对象应该对其他对象保持最少的了解,因为关系越密切,耦合度就越大,对于不管多么复杂的类,尽量吧逻辑都封装在类内部,对外
仅提供一个public方法就行;另迪米特还有一个定义,至于直接的朋友打交道(直接的朋友是指:成员变量、方法返回值、方法入参),非直
接朋友又称为陌生的朋友。
6、单一使用原则
单一职责原则:
即一个类应该仅完成一项职责,如果A类负责两个不同的职责1、职责2,那么修改一个职责的时候可能会影响到另一个职责。
7、合成复用原则
合成复用原则:
尽量避免使用继承,多用合成、依赖、聚合等代替;继承是is-a关系,其他是has-a关系。
总结
1、找出应用中可能变化之处,把他们独立出来,不要和那些不变化的代码混在一起;
2、针对接口编程,而不是针对实现编程;
3、为了交互对象之间的松耦合而努力;