设计模式的六大原则(简单的概念)
来源:互联网 发布:java 文件拷贝 编辑:程序博客网 时间:2024/06/14 13:27
设计模式的六大原则:
1.单一职责原则
英文名称是Single Responsibility Principle,简称是SRP。
SRP的原话解释是:There should never be more than one reason for a class to change(应该有且仅有一个原因引起类的变更)
2.里氏替换原则
● 第一种定义,也是最正宗的定义:If for each object o1 of type S there is an object o2 of
type T such that for all programs P defined in terms of T,the behavior of P is unchanged when o1 is
substituted for o2 then S is a subtype of T.(如果对每一个类型为S的对象o1,都有类型为T的对
象o2,使得以T定义的所有程序P在所有的对象o1都代换成o2时,程序P的行为没有发生变
化,那么类型S是类型T的子类型。)
● 第二种定义:Functions that use pointers or references to base classes must be able to use
objects of derived classes without knowing it.(所有引用基类的地方必须能透明地使用其子类的
对象。)
契约设计:里氏替换原则也要求制定一个契约,就是父类或接口,这种设计方法也叫做 Design by Contract(契约设计)
3.依赖倒置原则
英文名称是Dependence Inversion Principle,简称DIP。
依赖倒置原则的原始定义是:High level modules should not depend upon low level modules.Both should depend upon
abstractions.Abstractions should not depend upon details.Details should depend upon abstractions.
翻译过来,包含三层含义:
● 高层模块不应该依赖低层模块,两者都应该依赖其抽象;
● 抽象不应该依赖细节;
● 细节应该依赖抽象。
依赖倒置原则在Java语言中的表现就是:
● 模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过
接口或抽象类产生的;
● 接口或抽象类不依赖于实现类;
● 实现类依赖接口或抽象类。
更加精简的定义就是面向接口编程——OOD(Object-Oriented Design)
4.接口隔离原则
其包含4个含义:
● 接口要尽量小
● 接口要高内聚
● 定制服务
● 接口设计是有限度的
5.迪米特法则
英文名称是:Law of Demeter,简称LoD,也称为最少知识原则(Least Knowledge Principle,LKP)
迪米特法则对类的低耦合提出了明确的要求,其包含以下4层含义:
1. 只和朋友交流
2. 朋友间也是有距离的
3. 是自己的就是自己的
4. 谨慎使用Serializable
6.开闭原则
开闭原则的定义:Software entities like classes,modules and functions should be open for extension but closed for
1.单一职责原则
英文名称是Single Responsibility Principle,简称是SRP。
SRP的原话解释是:There should never be more than one reason for a class to change(应该有且仅有一个原因引起类的变更)
2.里氏替换原则
● 第一种定义,也是最正宗的定义:If for each object o1 of type S there is an object o2 of
type T such that for all programs P defined in terms of T,the behavior of P is unchanged when o1 is
substituted for o2 then S is a subtype of T.(如果对每一个类型为S的对象o1,都有类型为T的对
象o2,使得以T定义的所有程序P在所有的对象o1都代换成o2时,程序P的行为没有发生变
化,那么类型S是类型T的子类型。)
● 第二种定义:Functions that use pointers or references to base classes must be able to use
objects of derived classes without knowing it.(所有引用基类的地方必须能透明地使用其子类的
对象。)
契约设计:里氏替换原则也要求制定一个契约,就是父类或接口,这种设计方法也叫做 Design by Contract(契约设计)
3.依赖倒置原则
英文名称是Dependence Inversion Principle,简称DIP。
依赖倒置原则的原始定义是:High level modules should not depend upon low level modules.Both should depend upon
abstractions.Abstractions should not depend upon details.Details should depend upon abstractions.
翻译过来,包含三层含义:
● 高层模块不应该依赖低层模块,两者都应该依赖其抽象;
● 抽象不应该依赖细节;
● 细节应该依赖抽象。
依赖倒置原则在Java语言中的表现就是:
● 模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过
接口或抽象类产生的;
● 接口或抽象类不依赖于实现类;
● 实现类依赖接口或抽象类。
更加精简的定义就是面向接口编程——OOD(Object-Oriented Design)
4.接口隔离原则
其包含4个含义:
● 接口要尽量小
● 接口要高内聚
● 定制服务
● 接口设计是有限度的
5.迪米特法则
英文名称是:Law of Demeter,简称LoD,也称为最少知识原则(Least Knowledge Principle,LKP)
迪米特法则对类的低耦合提出了明确的要求,其包含以下4层含义:
1. 只和朋友交流
2. 朋友间也是有距离的
3. 是自己的就是自己的
4. 谨慎使用Serializable
6.开闭原则
开闭原则的定义:Software entities like classes,modules and functions should be open for extension but closed for
modifications.(一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。)
具体细节可参考(书名:设计模式之禅)
0 0
- 设计模式的六大原则(简单的概念)
- 简单的设计模式||六大原则
- 设计模式的六大原则
- 设计模式的六大原则
- 设计模式的六大原则
- 设计模式的六大原则
- 设计模式的六大原则
- 设计模式的六大原则
- 设计模式的六大原则
- 设计模式的六大原则
- 设计模式的六大原则
- 设计模式的六大原则
- 设计模式的六大原则
- 设计模式的六大原则
- 设计模式的六大原则
- 设计模式的六大原则
- 设计模式的六大原则
- 设计模式的六大原则
- java常用加密方式代码实现
- Testing 802.11n systems - Part 2: MIMO configuration analysis
- Struts2配置(Struts开发流程)
- 2016年已经悄然无声的走过,2017悄悄然来到自己的身边
- opencv 删除二值化图像中面积较小的连通域
- 设计模式的六大原则(简单的概念)
- UnityShader实例09:Stencil Buffer&Stencil Test
- vue2.0 下拉框默认标题设置
- 写在前面
- 安卓Android开发中网络请求接口中含有汉字需要转码,即字节转码
- this关键字、static关键字
- 42. Spring Boot多数据源【从零开始学Spring Boot】
- Mobile phones--树状数组
- iOS开发:对象直接转化成JSON