设计模式六大原则-非设计模式
在探讨之前,先和大家刨析一下“原则”和“模式”的区别。
设计模式:面向对象语言开发过程中,遇到种种的场景和问题,提出的解决方案和思路;
设计模式六大原则:面向对象语言开发过程中,推荐的一些指导性原则没有明确的招数,而且也经常会被忽略/违背;
设计模式六大原则:
一.单一职责原则(Single Responsibility Principle, SRP):有且仅有一个原因引起类的变更,常用的套路“拆分父类+子类”;
优点:
1.降低类的复杂性,一个类只负责一项职责,其逻辑肯定要比负责多项职责简单的多;
2.提高类的可读性,提高系统的可维护性;
3.降低变更引起的风险,变更是必然的,如果单一职责原则遵守的好,当修改一个接口的功能时,可以显著降低对其他接口功能的影响;
二.里氏替换原则(Liskov Substitution Principle,LSP):任何使用基类的地方都可以透明的使用子类;
优点:
1.提高代码的重用性,子类拥有父类的方法和属性;
2.提高代码的可扩展性,子类可形似于父类,但异于父类,保留自我的特性;
三.迪米特法则(Least Knowledge Principle,LKP):又被称为最少知道原则,如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用,如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。
优点:减少对象之间的耦合性;
四.依赖倒置原则(Dependence Inversion Principle,DIP):高模块对低模块的依赖,不应该依赖于细节,而应该通过抽象来依赖;
优点:避免修改底层的业务逻辑而造成上层变动;
依赖.png
五.接口隔离原则(Interface Segregation Principle, ISP):客户程序不应该依赖它不需要的接口,一个类对另一个类的依赖应该建立在最小的接口上;让我们定制的接口按照需求划分的刚刚好,这也是我们应该追求的;
优点:
1.提高灵活性;
2.实现内聚;
六.开闭原则(Open Close Principle,OCP):对扩展开发,对修改关闭;