本文主要介绍设计模式的设计和使用。
类是不稳定的,但是抽象相对稳定,依赖于抽象将获得更加稳定的类结构。
设计原则
单一指责
- 每个类只负责单一的功能,避免修改一个功能完成另一个功能的错误出现。
里氏替换/抽象类原则
- 子类实现父类的抽象方法
- 子类不要修改父类的非抽象方法
- 子类实现抽象方法时前置条件(参数)应该更加宽松
- 子类重写父类的方法后置条件(返回值)应该更加严格
依赖倒置
- 高层模块不应该依赖于底层模块,二者都应该依赖于抽象
- 抽象不能依赖于细节,细节要依赖抽象
- 多用抽象的接口描述动作。抽象难以扩展或者扩展复杂的的动作,降低动作执行者和动作承受者之间的关联
迪米特法则/最少知道原则
- 每个类对自己依赖的类知道的越少越好,被依赖的类开放公开的方法却封装内部复杂的逻辑
开闭原则
对扩展是开放的对修改是封闭的
使用增加软件实体的方法来扩展功能而不要使用修改代码的方式
接口隔离原则
- 一个类对另一个类的依赖应该建立在最小的接口上,也就是不要强迫子类实现他不需要的功能,如果需要这么做那么说明这个接口最小接口需要拆分