专注Java教育14年 全国咨询/投诉热线:444-1124-454
赢咖4LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 设计模式的六大原则的定义

设计模式的六大原则的定义

更新时间:2022-03-31 09:56:36 来源:赢咖4 浏览733次

Java设计模式的六大原则的定义是什么呢?小编来告诉大家。

设计模式的六大原则的定义

1.单一职责原则

定义:班级变更的原因只有一个

优势 :

类复杂度降低

可读性改进

易于维护

修改类引起的风险降低

临界点 :

过多的除法会导致类的急剧增加,增加系统的复杂度

2.里氏代换原理

定义:对基类的所有引用必须透明地使用其子类的对象

优势 :

提高代码重用

提高代码可扩展性

提高项目的开放性

缺点:

记住是侵入式的,只要继承,就有父类的属性和方法

降低代码灵活性,子类比父类有更多的约束

增强耦合,父类的常量/变量/方法发生变化时,必须考虑对子类的修改

四定义

子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。

子类可以添加自己独特的方法。

当子类的方法重载父类的方法时,方法前置条件(即方法的参数)比父方法的入参要宽松。

当子类的方法实现父类的抽象方法时,该方法的后置条件(即方法的返回值)比父类更严格。

3.依赖倒置原则

定义 :

高层模块不应该依赖低层模块,两者都依赖于它们的抽象(模块之间的依赖是通过抽象产生的,实现类不直接依赖)

抽象不应该依赖于细节(接口或抽象类不依赖于实现类)

细节可以依赖于抽象(实现类依赖于接口或抽象类)

处理 :

每个类都应该有一个接口或抽象类

变量的表面类型应该是接口或抽象类

任何类都不应该从具体类派生

尽量不要重复基类的实现方法

与里氏替换原理结合使用

4.依赖倒置原则

定义:客户端不应该依赖不需要的接口,类之间的依赖应该基于最小的接口

四定义:

接口要尽量小,不要有臃肿的接口

接口应该是高度内聚的

只提供访问者需要的方法,每个接口中没有子类不能使用但必须实现的东西,可以拆分接口

接口设计限制:设计粒度越小,系统越灵活,结构越复杂,可维护性降低

处理 :

一个接口只服务一个子模块或业务逻辑

尽量压缩接口中的方法,保证有用,避免臃肿

尝试修改被污染的接口,如果修改风险高,使用适配器模式转换处理

了解有关业务逻辑的更多信息

5. 迪米塔尔定律(鲜为人知的原理)

定义:一个对象应该对其他对象有最少的了解(低耦合)

意义 :

方法尽量不引入类中不存在的对象

尽量不要暴露太多的公共方法和无定形的公共变量,尽量内向

如果一个方法在这个类中,它不会增加类之间的关系,对这个类没有负面影响,可以放在这个类中

概括 :

核心概念是类间解耦,低耦合。负面影响是有很多中转或跳转类,导致系统复杂度增加,也给维护带来困难。需要反复权衡,结构清晰,高内聚低耦合。

如果一个类需要跳转两次以上才能访问另一个类,就需要想办法重构。

6.合成复用原理

定义:就是在一个新对象中使用一些已有的对象,使其成为新对象的一部分。新对象通过委托重用现有功能。

优势 :

使用对象的组合/聚合将有助于保持每个类的封装,并专注于单个任务。这样,类和集成层次结构将保持较小,并且不太可能成长为无法控制的庞然大物

缺点:

以这种方式重用构建的系统将有更多的对象需要管理;为了将多个不同的对象用作复合块,必须仔细定义接口

简而言之:尽量使用组合优先/聚合的方式,而不是使用继承

通过上述介绍相信大家对设计模式的六大原则的定义已经有所了解,大家如果想了解更多相关知识,可以关注一下赢咖4的Java赢咖4在线学习,里面的课程内容细致全面,由浅到深,适合没有基础的小白学习,希望对大家能够有所帮助哦。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>