常见的面向对象设计原则

常见的面向对象设计原则

 

一、单一职责原则SRP(Single Responsibility Principle)

        一个类应该仅有一个引起它变化的原因。防止多个变化原因互相干扰,造成上层调用出错。

二、开放-关闭原则OCP(Open-Closed Principle)

        一个类应该对扩展开放,对修改关闭。通过合理抽象,分离出变化与不变化的部分,为变化的部分预留可扩展的方式。

三、里氏替换原则LSP(Liskov Substitution Principle)

       子类型必须能够替换掉它们的父类型。防止多态造成隐藏错误。

四、依赖倒置原则DIP(Dependence Inversion Principle)

       要依赖于抽象,不要依赖于具体类。高,低层模块都依赖于抽象,不是具体实现类。高、低层模块的需求决定抽象的层次和实现。

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

        不应该强迫客户依赖于他们不用的方法。通过代码分离或使用委托来分离接口,在支持多重继承的语言中,可以采用多重继承的方式进行分离,防止对客户没用的接口对使用造成污染。

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

         应该尽量减少对象之间的交互,对象只和自已的朋友交互,从而松散类之间的耦合。

七、面向接口编程(Program to an interface, not an implementation)

         面向对象编程中的一种思想,即以抽象的东西去设计整个系统中的规则和交互,而不是具体实现的事物。

八、优先使用组合,而非继承

         继承会破坏封装性,也无法实现运行期的行为控制。

学习记录,后续有时间再丰富具体内容。也欢迎大家讨论。

 

你可能感兴趣的:(java,面向对象,设计原则)