在线客服
扫描二维码
下载博学谷APP
扫描二维码
关注博学谷微信公众号
设计模式的六大原则是什么?分别是单一职责原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特法则、开闭原则。下面就请大家跟随小编一起来深入理解这六大原则吧!

1、单一职责原则
单一职责原则,简称是SRP。简单解释就是,一个方法尽可能做一件事情,一般来说不应该让一个方法承担多个职责。单一职责原则的定义是:应该有且仅有一个原因引起类的变更。这个设计模式的原则提出了一个编写程序的标准,用“职责”或“变化原因”来衡量接口或设计是否优良,但是“职责”跟“变化原因”都是不好度量的,要“因地制宜”。单一职责适用于接口、类,同时也适用于方法,也就是说,一个方法尽可能做一件事情,一般来说不应该让一个方法承担多个职责。
2、里氏替换原则
里氏替换原则,即子类应该能替换掉它的父类。它为良好的继承定义了一个规范,一句简单的定义包含了4层含义:子类必须完全实现父类的方法;子类可以有自己的个性;覆盖或实现父类的方法时输入参数可以被放大;覆写或实现父类的方法时输出结果可以被缩小。即如果父类的一个方法的返回值是一个类型T,子类的相同方法(重载或覆写)的返回值为S,那么里氏替换原则就要求S必须小于等于T,也就是说,要么S和T是同一个类型,要么S是T的子类。
3、依赖倒置原则
这一设计模式的原则是指细节依赖抽象,低层依赖高层。依赖倒置原则的原始定义包含了三层含义:高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。这一原则在Java语言中的表现就是:模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生的;接口或抽象类不依赖于实现类;实现类依赖接口或抽象类。
4、接口隔离原则
接口隔离原则讲的是,应该尽量建立单一接口,不要建立臃肿的接口,接口应该尽量细化。接口分离的手段主要有以下两种:委托分离,通过增加一个新的类型来委托客户的请求,隔离客户和接口的直接依赖,但会增加系统开销;多重继承分离,通过接口多继承来实现客户需求。
5、迪米特法则
迪米特法则是指一个类应该对自己需要耦合或调用的类知道得最少。迪米特法则又叫最少知道原则,通俗地讲,一个类应该对自己需要耦合或调用的类知道得最少。一个类公开的public属性或方法越多,修改时涉及的面也就越大,变更引起的风险扩散也就越大。在设计时需要反复衡量,是否可以减少public方法和属性,是否可以修改为private、package-private、protected等访问权限,是否可以加上final关键字等。迪米特法则要求类尽量不要对外公布太多的public方法和非静态的public变量,尽量内敛,多使用private、package-private、protected等访问权限。
6、开闭原则
开闭原则要求尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来完成变化。开闭原则的定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。一个软件产品只要在生命期内,都会发生变化,既然变化是一个既定的事实,我们应该在设计时尽量适应这些变化,以提高项目的稳定性和灵活性。开闭原则要求尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来完成变化。如何做到开闭原则:抽象、封装。
设计模式的六大原则就讲解到这里了,如果大家对于设计模式还有什么问题,可以在博学谷在线学习相关的视频课程。希望大家都能够有所收获~
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
Java开发中各个阶段常用工具汇总
一个完整的Java项目开发的整个过程中,会使用到各种各样的工具。而同一个阶段有非常多的工具提供选择,而因为整个项目并非一个人完成的,所以要涉及到非常的团队协作工作。因此在选择每个阶段工具的使用的时候,最好是选择大家普遍使用的,这样才能更好的完成团队协作。本文就为大家整理Java开发中各个阶段常用的工具汇总。
10201
2019-08-05 18:11:56
声明式事务控制学习笔记整理
今天让我们走进声明式事务控制的学习,具体内容包括编程式事务控制相关对象,基于 XML 的声明式事务控制以及基于注解的声明式事务控制。对声明式事务控制感兴趣的同学,赶紧一起来看看小编整理的学习笔记吧!
6347
2020-04-14 19:54:55
Java开发可应用于什么领域?
Java的应用非常的广泛,可以用来在开发软件工具、嵌入式领域、交易系统、Android应用、大数据技术、服务器程序、网站开发、科学应用等诸多方面。在IT行业中Java编程语言有着非常重要的地位。
7057
2020-12-21 10:59:13
学Java要多久才能编小程序?学什么?
小程序应用无需下载可直接使用,无需下载操作简便让许多人使用小程序、小程序开发涉及到编程语言、服务器、营业执照等,小程序开发一般需要几天到几个月,学习到掌握掌握小程序开发的时间因人而异,具体要看个人的基础情况。
6362
2021-01-18 10:42:38
什么样的人适合学习Java?
“我适不适合学Java?”,想必你多少能够基于个人基础,性格,行业及未来目标等各方面对自己做出一个评估了。 这篇文章就几个大多Java初学者都会遇到具体困惑来说一说,供你参考。
7236
2022-10-21 18:46:05
