千家信息网

Design Pattern设计原则有哪些

发表于:2024-11-19 作者:千家信息网编辑
千家信息网最后更新 2024年11月19日,这篇文章给大家分享的是有关Design Pattern设计原则有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Design Pattern 笔记过于僵硬:不能轻松的加入
千家信息网最后更新 2024年11月19日Design Pattern设计原则有哪些

这篇文章给大家分享的是有关Design Pattern设计原则有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

Design Pattern 笔记

  1. 过于僵硬:不能轻松的加入新的功能

  2. 过于脆弱:修改一处可能波及到很多其他的地方

  3. 复用率低:现有的代码依赖于其他的东西,想要重用这个代码就很困难

  4. 黏度过高:改动总是以破坏原始意图和原始设计框架的方式进行

设计原则

1、OCP原则(开闭原则)

Software entities should be opon for extension but closed for modification.
对可变性的封装:当一个组件被认为是可变的时候,应该对这个可变性的组件进行封装,以便使其内部的变化只作用在内部范围内,不会延伸到其他地方。
一个可变性的不同的表象就是同一个继承结构中的具体的子类。在设计的时候不应该把不同的可变性混合在一起。

2、里氏代换原则:
如果每个C1类型的对象O1,都有一个C2类型的对象O2,使得以C1定义的程序里面的O1都可以换成O2,那么就说C2是C1的一个子类。
里氏代换原则要求在使用基类的地方其子类也一定适用,这条原则是在进行OOD时候对对象抽象过程中的一个验证方法。比若说设计了一个超类A,我们又设计了A的子类,那么检查我们的设计是否合理,就应该根据里氏代换原则,看看应用代码中使用到A的对象的地方,时候可以换成其子类对象也同样成立,如果不成立那么则证明子类并不真正是超类的孩子。

3、依赖倒转关系:
通常在设计分层结构的时候,我们总是设计成高层依赖于低层,而依赖倒转的要求就是低层要依赖于高层,这里面简单的例子就是Java中的接口技术,根据依赖倒转关系原则,就有了针对接口编程概念:一个具体的Java类应该只实现其抽象类和接口中的方法,而不是给出多余的方法。

4、抽象类于接口:
a.抽象类可实现部分功能,而接口不可以,所以抽象类的子类就拥有了抽象类实现的那部分功能。
b.抽象类的实现存在于其等级结构中,而接口的实现不仅可以实现此接口,同时也可以实现其他接口。这样这个子类可以对外提供不同的服务。
c.如果在已有的子类,为其定义一个抽象的父类是比较困难的,因为这会改变其等级结构,而为其定义一个接口却是容易的。
d.接口是定义混合型类型的理想工具。


5、ISP(接口分离原则):
这个原则强调的是如何来设计接口,它强调了应该按角色来对接口划分,而不应该把所有角色的功能都归结到一个接口中去。它强调不要把很多接口作为优化对象。
例如:有一个网站有一个全文搜索的功能,系统有一个Interface来提供所有的操作功能,比如说管理索引,搜索操作等等。根据ISP原则应该按角色划分,对每一个角色都设计一个接口,如上例就应该分别设计一个索引管理接口和搜索操作接口。
6、CARP合成/聚合复用原则:
7、LoD迪米特原则:也成为最少知识原则
如果一个类不必与其他类直接通信,那么两个类就不应该相互作用,也就是说彼此都不知道对方的存在。如果一个类需要调用另外一个类的方法,可以通过第三方来调用。
这个原则就是为了封闭组件的可变性,是它们的变化不会波及到其他地方。

感谢各位的阅读!关于"Design Pattern设计原则有哪些"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

原则 接口 设计 子类 功能 对象 可变 可变性 地方 时候 就是 方法 结构 角色 不同 代码 类型 组件 里氏 搜索 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 300字小作文网络安全故事 潮州通信软件开发报价表 在数据库中查找数据 wamp里面带有数据库 专科计算机网络技术学数学吗 正当防卫4联系不到服务器怎么办 区块链数据库介绍 如何部署服务器上 审批工作流数据库设计 梦幻2008服务器进不去 上海系统软件开发流程 县财政网络安全管理责任制度 服务器装系统需要几块硬盘 关于网络安全诈骗 手机网络安全十个小妙招 苹果web服务器 苏州常用网络技术 戴尔服务器进系统看不到硬盘 福建正规软件开发品质保障 数据库软件自动 税务局 网络安全周 云南安防时间同步服务器虚拟主机 软件开发行业的收入确认原则 喋血复仇亚洲服务器在哪 做软件开发工资高吗做了三年 阿里是怎么管理云服务器的 数据库备份导入数据变多 数据库技术及应用实验题答案 我的世界粘土服务器礼盒 软件开发属于计算机网络技术
0