ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

设计模式6原则

2019-03-03 16:01:32  阅读:258  来源: 互联网

标签:米特 法则 原则 对象 一个 Principle 设计模式


设计模式6原则

文章目录

ref

https://www.cnblogs.com/dolphin0520/p/3919839.html

1 SRP

单一职责原则(Single Responsibility Principle, SRP):一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。

一个类 不能太“累”,承载的指责要少,以此来减少对其他职责的运行影响。

实现高内聚、低耦合的指导方针

2 OCP

开闭原则(Open-Closed Principle, OCP):一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。

保证了原有的系统这个抽象层相对稳定,我们可以做快速的增量改变,不修改已有的代码。

3 LSP

里氏代换原则(Liskov Substitution Principle, LSP):所有引用基类(父类)的地方必须能透明地使用其子类的对象。

在软件中,将一个父类替换为他的子类,程序将不会出现任何异常。反过来不成立:如果一个组件
使用的子类,那么它不一定能使用基类对象。

里氏代换是实现开闭原则的重要方式之一:针对基类编程,运行时确定子类。

4 DIP

依赖倒转原则(Dependency Inversion Principle, DIP):抽象不应该依赖于细节,细节应当依赖于抽象。换言之,要针对接口编程,而不是针对实现编程。

5. ISP

接口隔离原则(Interface Segregation Principle, ISP):使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。

每一个接口应该承担一种相对独立的角色,不干不该干的事,该干的事都要干

6. LoD

迪米特法则(Law of Demeter, LoD):一个软件实体应当尽可能少地与其他实体发生相互作用。

迪米特法则又称为最少知识原则(LeastKnowledge Principle, LKP)

迪米特法则可降低系统的耦合度,使类与类之间保持松散的耦合关系。

迪米特法则还有几种定义形式,包括:不要和“陌生人”说话、只与你的直接朋友通信等,在迪米特法则中,对于一个对象,其朋友包括以下几类:

  (1) 当前对象本身(this);

 (2) 以参数形式传入到当前对象方法中的对象;

  (3) 当前对象的成员对象;

  (4) 如果当前对象的成员对象是一个集合,那么集合中的元素也都是朋友;

  (5) 当前对象所创建的对象。

  任何一个对象,如果满足上面的条件之一,就是当前对象的“朋友”,否则就是“陌生人”。在应用迪米特法则时,一个对象只能与直接朋友发生交互,不要与“陌生人”发生直接交互,这样做可以降低系统的耦合度,一个对象的改变不会给太多其他对象带来影响。

  迪米特法则要求我们在设计系统时,应该尽量减少对象之间的交互,如果两个对象之间不必彼此直接通信,那么这两个对象就不应当发生任何直接的相互作用,如果其中的一个对象需要调用另一个对象的某一个方法的话,可以通过第三者转发这个调用。简言之,就是通过引入一个合理的第三者来降低现有对象之间的耦合度。

标签:米特,法则,原则,对象,一个,Principle,设计模式
来源: https://blog.csdn.net/paulkg12/article/details/88089197

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有