Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >奈学开发者社区分享:Java - 设计模式的7个设计原则

奈学开发者社区分享:Java - 设计模式的7个设计原则

作者头像
江帅帅
修改于 2020-09-28 09:17:31
修改于 2020-09-28 09:17:31
4460
举报
文章被收录于专栏:大数据工程师大数据工程师

因为设计模式就是基于这些原则的实现,所以很有必要了解这些原则,下面主要对面向对象编程的几个原则进行简单介绍。

  1、单一职责原则 ( SRP )

  英文全称是Single Responsibility Principle,定义是一个类,应该只有一个引起它变化的原因。类变化的原因就是职责,如果一个类承担的职责过多,就等于把这些职责耦合在一起了。一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当发生变化时,设计会遭受到意想不到的破坏。而如果想要避免这种现象的发生,就要尽可能的遵守单一职责原则。此原则的核心就是解耦和增强内聚性。

  2、开闭原则 ( OCP )

  英文全称是Open Close Principle,定义是软件实体(包括类、模块

  、函数等)应该对于扩展时开放的,对于修改是封闭的。开闭原则是是面向对象设计中最重要的原则之一,其它很多的设计原则都是实现开闭原则的一种手段。

  3、里氏替换原则 ( LSP )

  英文全称是Liskov Substitution Principle,是面向对象设计的基本原则之一。 定义是任何基类可以出现的地方,子类一定可以出现。LSP 是继承复用的基石,只有当派生类可以替换掉基类,且软件单位的功能不受到影响时,基类才能真正被复用,而派生类也能够在基类的基础上增加新的行为。里氏替换原则是对开闭原则的补充。实现开闭原则的关键步骤就是抽象化,而基类与子类的继承关系就是抽象化的具体实现,所以里氏替换原则是对实现抽象化的具体步骤的规范。

 4、依赖倒置原则 ( DIP )

  英文全称是Dependence Inversion Principle,这个原则是开闭原则的基础,依赖倒置原则就是要求调用者和被调用者都依赖抽象,这样两者没有直接的关联和接触,在变动的时候,一方的变动不会影响另一方的变动。依赖倒置强调了抽象的重要性,针对接口编程,依赖于抽象而不依赖于具体。

  5、接口隔离原则 ( ISP )

  英文全称是Interface Segregation Principle,这个原则的意思是使用多个隔离的接口,比使用单个接口要好。目的就是降低类之间的耦合度,便于软件升级和维护。

  6、最少知道原则(迪米特原则)

  一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立。通俗地说就是不要和陌生人说话,即一个对象应对其他对象有尽可能少的了解。迪米特法则的初衷在于降低类之间的耦合。由于每个类尽量减少对其他类的依赖,因此,很容易使得系统的功能模块功能独立,相互之间不存在(或很少有)依赖关系。

  7、合成/聚合复用(CARP)

  英文全称是Composite Reuse Principle,合成/聚合复用原则经常又叫做合成复用原则。合成/聚合复用原则的潜台词是:我只是用你的方法,我们不一定是同类。继承的耦合性更大,比如一个父类后来添加实现一个接口或者去掉一个接口,那子类可能会遭到毁灭性的编译错误,但如果只是组合聚合,只是引用类的方法,就不会有这种巨大的风险,同时也实现了复用。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
设计模式系列,六大设计原则
设计模式和性能优化有没有关系?最近,我看到有人再讲性能优化的时候,讲到了“有些设计模式可以做到一定程度的性能优化”。
业余草
2019/08/14
8440
【设计模式前置课】软件设计的七原则
所以我们需要将其解耦思想为自己所用,从而提升自己编码能力,使自己的代码更加容易维护、扩展。
韩旭051
2020/12/08
5340
设计模式中的设计原则
翻了三本书《设计模式之禅》、《设计模式:可复用的面向对象软件元素》、《Head First 设计模式》,也看了不少博客和关于设计模式原则的文章。关于设计模式有几大原则,似乎没有严格的定论,有的说6大设计原则,有的说7大设计原则,《Head First》中更是提到了9个设计原则。 不管是多少个设计原则,最终都是希望程序达到 **“高内聚,低耦合” **,代码高度复用,具有可维护性的目的。所以多少个设计原则已经不重要了,重要的是达到怎样的目标!
Haley_Wong
2018/08/22
8360
设计模式中的设计原则
设计模式与设计原则简介(一)
对于软件开发人员, 在软件开发过程中, 面临的一般问题的解决方案就是设计模式(准确的说是OOP中)
noteless
2018/12/06
5740
设计模式与设计原则简介(一)
设计模式之六原则一法则详解
六原则一法则是指开闭原则、里氏替换原则、依赖倒置原则、单一职责原则、接口隔离原则、合成复用原则、迪米特法则。
Java技术债务
2022/08/09
6850
设计模式之六原则一法则详解
设计模式六大原则
  单一职责原则又称为单一功能原则,即不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。
那一叶随风
2018/08/22
3210
设计模式六大原则
回归设计模式的本质:设计原则
作为开发人员,或多或少都会熟悉或了解一些设计模式,如单例模式、工厂模式、观察者模式等等。但并非都能理解这些设计模式背后的本质,从而可能会导致对模式单纯的套用或滥用的情况出现。不要为了模式而模式,要明白使用模式的目的,要正确理解模式背后的设计原理,要理解背后的基本设计原则。
Keegan小钢
2019/07/30
5480
回归设计模式的本质:设计原则
设计模式六大原则
上篇文章说了工厂模式的单例模式和创建模式,单例模式如何在懒加载的情况下保证线程安全性,创建模式通过接口和抽象类,来完成开闭原则。
keying
2022/12/14
4610
架构师内功心法之设计原则
学习设计原则,学习设计模式的基础。在实际开发过程中,并不是一定要求所有代码都遵循设计原则,我们要考虑人力、时间、成本、质量,不是刻意追求完美,要在适当的场景遵循设计原则,体现的是一种平衡取舍,帮助我们设计出更加优雅的代码结构。
编程之心
2020/08/12
4860
程序员内功心法《设计模式》
设计模式是在软件工程实践过程中,JAVA使用者们总结出的良好的编程方法,使用设计模式能够增加系统的健壮性,易修改性和可扩展性,当你进行开发的软件规模比较大的时候,良好的设计模式会给编程带来便利,让系统更加稳定。
Java架构
2020/04/16
7050
程序员内功心法《设计模式》
设计模式七大原则(1.2)
设计模式原则是设计设计模式的原则,也就是设计模式应当如何设计所遵守的原则;换句话说,设计模式的设计是基于设计模式原则的。
Noneplus
2019/09/24
4320
设计模式七大原则(1.2)
[5分钟]菜鸟修研之设计模式:六大设计原则
笔者作为一个菜鸟,会尝试以简单的代码和容易理解的语句去解释这几种原则的特性和应用场景。
痴者工良
2021/04/26
3560
软件开发中的原则
一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。(Every object should have a single responsibility, and that responsibility should be entirely encapsulated by the class.),即又定义有且仅有一个原因使类变更。
lyb-geek
2018/07/26
6500
软件开发中的原则
6大设计原则总结
6大设计原则总结 一、单一职责原则  单一职责原则:英文名称是Single Responsiblity Principle,简称是SRP。定义:应该有且仅有一个原因引起类的变更。 单一职责原则要求:一个接口或类只有一个原因引起变化,也就是一个接口或类只有一个职责,它就负责一件事情。 单一职责原则的好处: 类的复杂性降低,实现什么职责都有清晰明确的定义; 可读性提高,复杂性降低,那当然可读性提高了; 可维护性提高,可读性提高,那当然更容易维护了; 变更引起的风险降低,变更是必不可少的,如果接口的单一职责做得好
新人小试
2018/04/12
8690
常见的软件设计原则
常见的软件设计原则分为:单一职责、开闭原则、接口隔离、里式替换、迪米特原则、依赖倒置原则。
luoxn28
2021/07/20
8640
面向对象的七大设计原则
1. 单一职责原则(Single Responsibility Principle) 每一个类应该专注于做一件事情。 每一个职责都是变化的一个轴线,如果一个类有一个以上的职责,这些职责就耦合在了一起。这会导致脆弱的设计。当一个职责发生变化时,可能会影响其它的职责。另外,多个职责耦合在一起,会影响复用性。例如:要实现逻辑和界面的分离。需要说明的一点是单一职责原则不只是面向对象编程思想所特有的,只要是模块化的程序设计,都需要遵循这一重要原则。 2. 里氏替换原则(Liskov Substitution Prin
房上的猫
2018/03/14
2.1K0
『设计模式』开发设计的七大原则,我做人还是挺有原则,那些代码呢?
所谓单一职责原则就是一个类仅有一个引起它变化的原因。这里变化的原因就是所说的“职责”。如果一个类有多个引起它变化的原因,那么也就意味着这个类有多个职责,再进一步说,就是把多个职责耦合在一起了。
风骨散人Chiam
2020/10/28
6620
JAVA设计模式详解
设计模式有两种分类方法,即根据模式的目的来分和根据模式的作用的范围来分。 根据目的来分 根据模式是用来完成什么工作来划分,这种方式可分为创建型模式、结构型模式和行为型模式 3 种。 创建型模式:用于描述“怎样创建对象”,它的主要特点是“将对象的创建与使用分离”。GoF 中提供了单例、原型、工厂方法、抽象工厂、建造者等 5 种创建型模式。
一点博客
2019/07/24
5280
JAVA 设计模式系列(2) —— 设计原则
如何理解单一职责原则: 例如有一个类里面包含了属性以及属性的 get 与 set 方法和一些操作这个类的诸多属性而完成的相关业务逻辑。此时我们可以将这个类分为两个对象,一个用于管理对象的属性,另一个用于管理对象的业务逻辑。
求和小熊猫
2020/12/31
3450
设计原则:面向对象设计原则详解
我们在应用程序开发中,一般要求尽量两做到可维护性和可复用性。 应用程序的复用可以提高应用程序的开发效率和质量,节约开发成本,恰当的复用还可以改善系统的可维护性。而在面向对象的设计里面,可维护性复用都是以面向对象设计原则为基础的,这些设计原则首先都是复用的原则。遵循这些设计原则可以有效地提高系统的复用性,同时提高系统的可维护性。 面向对象设计原则和设计模式也是对系统进行合理重构的指导方针。
黄规速
2022/04/14
2.8K0
设计原则:面向对象设计原则详解
相关推荐
设计模式系列,六大设计原则
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档