设计模式学习笔记(1)-----设计模式6大原则

单一职责原则

Single Responsibility Principle(SRP)
每一个接口就承担一个责任(或者说是一类的责任),尽量做到只有一个原因引起变化
ps:电话机通话的过程可以分为 ,拨打电话->通话->挂断电话
这里拨打 和 挂断 都是物理层面的可以做一个接口
通话的过程,是通讯层面的可以是移动也可以是联通,可以做一个接口


里氏替换原则

代码中有基类的地方,一定可以用子类去替换,当然,反过来不成立


依赖倒置原则

  • 高层模块不依赖底层模块,两者都应该依赖他的抽象类
  • 抽象类不应该依赖细节
  • 细节应该依赖抽象类

用java解释

  • 模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过
    接口或抽象类产生的;
  • 接口或抽象类不依赖于实现类;
  • 实现类依赖接口或抽象类。

接口隔离原则

  • 客户端不应该依赖他不需要的接口
  • 类间的依赖关系要建立在最小的接口上

通俗的讲就是简化接口,一个接口中不要有过多的方法
ps: 比如一个接口中有10个方法,他们都是属于同一个职责的,但是用户权限不一样能用的方法不一样,所以这个接口在 单一职责原则 中是合理的,但是他不符合接口隔离原则.


迪米特法则

一个对象应该对其他对象有最少的了解。
通俗地讲,一个类应该对自己需要耦合或调用的类知道得最少,你(被耦合或调
用的类)的内部是如何复杂都和我没关系,那是你的事情,我就知道你提供的这么多public方法,我就调用这么多,其他的我一概不关心。

  • 类只和直接的朋友通信:
    朋友类:出现在成员变量、方法的输入输出参数中的类称为成员朋友类,而出现在方法体内部的类不属于朋友类

  • 朋友之间也需要有距离:
    一个类公开的public属性或方法越多,修改时涉及的面也就越大,变更引起的风险扩散也就越大,所以要尽量少的发布public 方法,多用private

  • 是自己的就是自己的:
    如果一个方法放在本类中,既不增加类间关系,也对本类不产生负面影响,那就放置在本类中


开闭原则

一个软件实体如类、模块和函数应该对扩展开放,对修改关闭

猜你喜欢

转载自blog.csdn.net/zjsxxzh/article/details/81279893