设计模式七大原则

单一职责原则

     概述:每个类只负责一件事情

     好处:降低了一个类的代码复杂度。  提高了维护性,一个功能发生变化不影响其他代码

               实际开发中,最能体现单一原则的其实是在方法中,一个方法基本都是具体实现一个功能

接口隔离原则

      概述:在实现接口的时候我们应该实现最小单位的接口。   也就是说比如有A接口有  test1(),test2(),test3(),test4()四个方法。我们实现类只需要一个test1()方法。那么这时候就要必须重写另外三个接口。这时候可以使用  B类有一个test1()方法抽离出去,实现test1()方法即可。避免了重写多余的接口

      好处:避免因为实现接口而重写多余的方法,接口的方法应该细化,这样就使接口更加细化。并且降低了耦合

依赖倒转原则

         概念:如果一个A类依赖了B类,那么B类就应该有一个对应的抽象类或者接口。其实就是面向接口

         好处:高扩展,也就是如果A类依赖B的接口,那么如果这时候又想添加一个C类也想使用这个A类中的方法,那么只需要实现这个接口就ok了

里氏替换原则

        概念:一个A类有一个子类B类,如果C类依赖了A类,那么就会有B类替代A类而代码逻辑不会改变。解决办法:比如可以使用new A() 对象,直接调用父类的方法,这样也是为了避免子类

       好处:通过这个规范约束了尽可能的不重写父类的代码,即使重写那么子类相对于父类的逻辑是不能改变的。降低了代码的出错

开闭原则

     概念:对使用者关闭修改,提供者打开扩展。也就是说使用者是 A类,A类中有一个方法test()。而提供者B类中调用这个方法,如果提供者的参数发生改变A类在不进行修改的情况下也能兼容。比如  面向接口

       好处: 代码更加灵活

迪米特原则

       概念:也就是最少知道原则。在代码中只能和直接朋友进行通信。

                  直接朋友:成员变量     入参    出参  

       好处:降低了代码之间的耦合,比如A类中的方法test()。如果在这个方法中使用了new C(),那么这个C其实就是一个非直接朋友,其实这样会增加耦合性,因为如果我A类想要使用这个C,B类也想使用这个C完成什么功能,如果C发生了改变那么A和B的方法都要需改,这时候可以在其他类中将这个功能实现了,A类或者B类只需要调用这个方法就行了

复用原则

      概念:尽量使用合成或者聚合的方法而不是使用继承

      好处:降低了耦合。  因为比如 动物类 中有一个 name 。如果  鱼类 想要使用这个name 就去继承这个 动物类 。这样就会导致  鱼类和动物类是没有关系的两个类,仅仅因为想要使用动物类中的一个属性就去继承,耦合性太大

你可能感兴趣的:(设计模式)