码迷,mamicode.com
首页 > 其他好文 > 详细

Design Pattern

时间:2020-06-26 12:29:31      阅读:43      评论:0      收藏:0      [点我收藏+]

标签:直接   组合   sub   编程   调用   inter   建立   lod   sign   

7 principles to design the Design Pattern

单一职责(Single Responsibility Principle)

一个类或者一个方法只负责一项职责

接口隔离(interface segregation principle)

建立单一接口,扩展为类也是一种接口,一切皆接口,客户端不应该依赖它不需要的接口;
,类之间依赖关系应该建立在最小的接口上;即:复杂的接口,根据业务拆分成多个简单接口;

开闭原则(open closed principle)

对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码

迪米特原则(law of demeter LOD)

最少知道原则,尽量降低类与类之间的耦合;一个对象应该对其他对象有最少的了解
再简单点:只与直接朋友进行通信
直接朋友: 对于一个类,成员变量、方法参数、方法返回值为直接朋友, 局部变量不是。

里氏替换原则(LSP liskov substitution principle)

子类可以扩展父类的功能,但不要重写父类的方法,以保证父类可以无障碍调用子类的方法。实在想重写就用“聚合、组合、依赖”来代替。

依赖倒置原则(dependence inversion principle) (The dependency here means use a class or an interface in your method)

这个是开闭原则的基础,具体内容:中心思想为面向接口编程,依赖于抽象而不依赖于具体
高层不就依赖低层, 它们都应该依赖其抽象

合成复用原则 (composite reuse principle)

尽量使用 组合、聚合 的方式而不是继承。

Relationship

dependency

Use you as a parameter in my method.

public class A{ // class A has dependency on 3 Interfaces
    public void depend1(Interface1 i){
        i.operation1(1);
    }
    public void depend1(Interface2 i){
        i.operation2(1);
    }
    public void depend1(Interface3 i){
        i.operation3(1);
    }
}

aggregation

class B{
      A a;
}

composition (when class B is constructed, A is constructed insides B.

class B{
      A a = new A();
}

Three ways to use Dependency

  • Through an Interface
  • Through a Contructor
  • Through a setter()

Design Pattern

标签:直接   组合   sub   编程   调用   inter   建立   lod   sign   

原文地址:https://www.cnblogs.com/nedrain/p/13194386.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!