理解隔离变化
各司其职(责任)
对象
原则一:依赖倒置原则
高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。
通过依赖设计来隔离变化
原则二:开放封闭原则(开闭原则)
对扩展开放,对修改封闭
类模块是可扩展的,但是不可修改
原则三:单一职责原则
原则四:Liskov替换原则
子类可替换父类,子类继承父类方法时
里氏替换原则通俗的来讲就是:子类可以扩展父类的功能,但不能改变父类原有的功能。它包含以下4层含义:
- 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。
- 子类中可以增加自己特有的方法。
- 当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。
- 当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。
原则五:接口隔离原则
定义
客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。
问题由来
类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不需要的方法。
解决方案
将臃肿的接口I拆分为独立的几个接口,类A和类C分别与他们需要的接口建立依赖关系。也就是采用接口隔离原则。
未遵循接口隔离原则的设计 好的接口设计
原则六:优先使用组合而非类继承
原则七:封装变化点
底层:封装数据
原则八:针对接口编程,而不是针对实现编程
产业的强盛的标志是——接口标准化
秦国的兵器标准化
毕升的活字印刷vs雕版印刷 松耦合设计 板字分离 板子和字靠接口连接
网友评论