一:开——闭原则(OCP)
含义:就是对一个类而言,应该仅有一个引起变化的原因。
含义:若对每个类S的对象O1,都存在一个类T的对象O2,使得所有针对T编写的程序P,然后用O1替换O2后,程序P行为功能不发生变化,则S是T的子类。
含义:高层模板不应该依赖底层模板,两者应该依赖于抽象,而抽象不应该依赖于细节。
含义:不要强迫客户依赖于他们不需要的方法,应该使用接口将两者隔离。
再具体的编程过程中一个类对另一个类的依赖性应该当是建立在最小的接口上的。如果客户端只需要某一些方法的话,那么就应该向客户端提供这些需要的方法,而不是提供不需要的方法。
含义:一个软件实体应当对扩展开放,对修改关闭。
含义:就是对一个类而言,应该仅有一个引起变化的原因。
所以在构造对象时,应该将对象的不同职责分离至多个类中,从而确保引起该类的变化的原因只有一个,使用这个原则可以提高内聚,降低耦合度。
含义:若对每个类S的对象O1,都存在一个类T的对象O2,使得所有针对T编写的程序P,然后用O1替换O2后,程序P行为功能不发生变化,则S是T的子类。
该原则主要应用在继承关系上,在实现继承时,子类必须能替换掉他们的基类。
含义:高层模板不应该依赖底层模板,两者应该依赖于抽象,而抽象不应该依赖于细节。
在模块编程中要依赖抽象编程,不要依赖具体的细节编程,即针对接口编程,不要针对具体的实现编程。
含义:不要强迫客户依赖于他们不需要的方法,应该使用接口将两者隔离。
再具体的编程过程中一个类对另一个类的依赖性应该当是建立在最小的接口上的。如果客户端只需要某一些方法的话,那么就应该向客户端提供这些需要的方法,而不是提供不需要的方法。