设计模式六大原则
-
开放封闭原则
对扩展开放,对修改关闭,在增加新功能的时候,能不改代码尽量不修改,可以使用继承然后增加新代码。 -
单一职责原则
一个类而言仅有一个引起其变化的原因,专人专事。财务不要去开发,开发不要去干财务。降低代码的复杂度,减少因为修改接口带来的风险。 -
里氏替换原则
调用父类方法可以执行,调用子类方法也应该完全可以。 -
依赖倒置原则
参考链接软件架构设计原则之依赖倒置原则
程序要以来抽象接口,不要依赖于具体实现。
public class Tom{ public void studyJava(){ System.out.println("Java"); } public void studyPython(){ System.out.println("Python"); } } public static void main(String[] args){ Tom tom=new Tom; tom.studyJava(); tom.studyPython(); }
现在Tom是个卷逼,现在又要学AI,现在需要在Tom类添加studyAI方法,在高层追加调用。
优化实现:public interface ICourse{ void study(); } public class AICourse implements ICourse{ void study(){ System.out.println("AI"); } } public class Tom{ void study(ICourse course){ course.study(); } } public static void main(String[] args){ Tom tom=new Tom; tom.study(new AICourse()); }
现在无论Tom怎么卷,只要新技术出现,那么我们只需要做俩步:
- 实现该技术的类
public class GoCourse inplements ICourse{ void study(){ System.out.println("GoCourse"); }
- 然后传入便可以。
tom.study(new GoCourse());
-
接口隔离原则
将不同功能定义在不同接⼝中实现接⼝隔离,避免了类依赖它不需要的接⼝,减少了接
⼝之间依赖的冗余性和复杂性。 -
迪米特原则
也叫最少知道原则,每个模块对其他模块都要尽可能少地了解和依赖,降低代码耦合度 -
合成/聚合原则:尽量使⽤组合(has-a)/聚合(contains-a)⽽不是继承(is-a)达到软件复⽤的⽬的,避免滥
⽤继承带来的⽅法污染和⽅法爆炸,⽅法污染指⽗类的⾏为通过继承传递给⼦类,但⼦类并不具备执⾏
此⾏为的能⼒;⽅法爆炸指继承树不断扩⼤,底层类拥有的⽅法过于繁杂,导致很容易选择错误