设计模式(二)——面向对象设计原则

理解隔离变化

各司其职(责任)

对象

原则一:依赖倒置原则

高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。
通过依赖设计来隔离变化

原则二:开放封闭原则(开闭原则)

对扩展开放,对修改封闭
类模块是可扩展的,但是不可修改

原则三:单一职责原则

原则四:Liskov替换原则

子类可替换父类,子类继承父类方法时
里氏替换原则通俗的来讲就是:子类可以扩展父类的功能,但不能改变父类原有的功能。它包含以下4层含义:

  • 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。
  • 子类中可以增加自己特有的方法。
  • 当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。
  • 当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。

原则五:接口隔离原则

定义

客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。

问题由来

类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不需要的方法。

解决方案

将臃肿的接口I拆分为独立的几个接口,类A和类C分别与他们需要的接口建立依赖关系。也就是采用接口隔离原则。


未遵循接口隔离原则的设计
好的接口设计

原则六:优先使用组合而非类继承

原则七:封装变化点

底层:封装数据

原则八:针对接口编程,而不是针对实现编程

产业的强盛的标志是——接口标准化
秦国的兵器标准化
毕升的活字印刷vs雕版印刷 松耦合设计 板字分离 板子和字靠接口连接

你可能感兴趣的:(设计模式(二)——面向对象设计原则)