软件设计的大旗——六大设计原则
参考:《设计模式之禅》
一、开闭原则(Open Close Principle)
(1)开闭原则统领其他几个原则,是大旗中最闪耀的图标,因此将其放在第一位;
(2)核心思想:对扩展开放,对修改封闭;
(3)详细解释:针对业务持续更新带来的变化,在软件实体上体现的,应该是通过扩展来实现变化,而不是修改已有代码来适配变化,否则很可能会变更原有逻辑,破坏整个架构;
(4)举例:抽象约束,通过接口或者抽象类约束扩展,对扩展边界进行限定;例如在底层驱动开发时,需要将同一类器件抽象成一类功能性器件,对上层提供统一的稳定的功能性接口;如果需要新增一种器件,直接添加一套新的驱动即可,不必修改上层的功能性接口,做到对器件变化的扩展开放,对功能接口的修改封闭,不至于将底层的修改影响到业务层面。
二、单一职责(Single Responsibility Principle)
(1)容易理解,且备受争议的原则;
(2)核心思想:接口一定要做到单一职责,类的设计尽量做到只有一个原因引起变化;
(3)优点:类的复杂性降低,职责定义明确;可读性提高;可维护性提高;变更引起的风险降低
三、里氏替换(Liskov Substitution Principle)
(1)针对继承而言,
四、依赖倒置(Dependence Inversion Principle)
(1)很重要的一个,
五、接口隔离(Interface Inversion Principle)
(1)
六、迪米特法则(Law of Demeter)
(1)