前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >OOP编程七大原则

OOP编程七大原则

作者头像
sunsky
发布于 2020-08-20 03:37:54
发布于 2020-08-20 03:37:54
4770
举报
文章被收录于专栏:sunskysunsky

OCP(Open-Closed Principle),开放封闭原则:软件实体应该扩展开放、修改封闭。 实现:合理划分构件,一种可变性不应当散落在代码的很多角落里,而应当被封装到一个对象里;一种可变性不应当与另一个可变性混合在一起。 DIP(Dependency Inversion Principle),依赖倒置原则:摆脱面向过程编程思想中高层模块依赖于低层实现,抽象依赖于具体细节。OOP中要做到的是,高层模块不依赖于低层模块实现,二者都依赖于抽象;抽象不依赖于具体实现细节,细节依赖于抽象。 实现:应该通过抽象耦合的方式,使具体类最大可能的仅与其抽象类(接口)发生耦合;程序在需要引用一个对象时,应当尽可能的使用抽象类型作为变量的静态类型,这就是针对接口编程的含义。 LSP(Liskov Substitution Principle),Liskov替换原则:继承思想的基础, 即子类能替代父类使用。“只有当衍生类可以替换掉基类,软件单位的功能不会受到影响时,基类才真正被复用,而衍生类也才能够在基类的基础上增加新的行为。” ISP(Interface Insolation Principle),接口隔离原则:客户端不应该依赖它不需要的接口,一个类对另一个类的依赖应该建立在最小的接口上不要引入无关因素,避免接口污染。 实现:一个类对另外一个类的依赖性应当是建立在最小的接口上的。使用多个专门的接口比使用单一的总接口要好。 SRP(Single Resposibility Principle),单一职责原则:就一个类而言,接口职责单一,应该仅有一个引起它变化的原因。 如果一个类的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会抑止这个类完成其他职责的能力。 CARP(Composite/Aggregate Reuse Principle),合成/聚合复用原则:设计模式告诉我们对象委托优于类继承,从UML的角度讲,就是关联关系优于继承关系。尽量使用合成/聚合、尽量不使用继承。 实现:在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分,以整合其功能。 LoD(Law Of Demeter or Principle of Least Knowledge),迪米特原则或最少知识原则:就是说一个对象应当对其他对象尽可能少的了解,依赖越少越好。即只直接与朋友通信,或者通过朋友与陌生人通信。 朋友的定义(或关系): (1)当前对象本身。 (2)以参量的形式传入到当前对象方法中的对象。 (3)当前对象的实例变量直接引用的对象。 (4)当前对象的实例变量如果是一个聚集,那么聚集中的元素也都是朋友。 (5)当前对象所创建的对象。 实现: (1)在类的划分上,应当创建有弱耦合的类。类之间的耦合越弱,就越有利于复用。 (2)在类的结构设计上,每一个类都应当尽量降低成员的访问权限。一个类不应当public自己的属性,而应当提供取值和赋值的方法让外界间接访问自己的属性。 (3)在类的设计上,只要有可能,一个类应当设计成不变类。 (4)在对其它对象的引用上,一个类对其它对象的引用应该降到最低。 (5)尽量限制局部变量的有效范围.

总结:

组合优先、继承其次。具体依赖抽象,无论高层、底层。职责单一、依赖单纯、高内聚、低耦合。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-05-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
『设计模式』开发设计的七大原则,我做人还是挺有原则,那些代码呢?
所谓单一职责原则就是一个类仅有一个引起它变化的原因。这里变化的原因就是所说的“职责”。如果一个类有多个引起它变化的原因,那么也就意味着这个类有多个职责,再进一步说,就是把多个职责耦合在一起了。
风骨散人Chiam
2020/10/28
6180
设计模式概念和七大原则
在GoF(Gang of Four)的书籍《Design Patterns - Elements of Reusable Object-Oriented Software(设计模式-可复用面向对象软件的基础)》中是这样定义设计模式的:Christopher Alexander说过:“每一个模式描述了一个在我们周围不断重复发生的问题以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动” [AIS+77,第10页]。尽管Alexander所指的是城市和建筑模式,但他的思想也同样适用于面向对象设计模式,只是在面向对象的解决方案里, 我们用对象和接口代替了墙壁和门窗。两类模式的核心都在于提供了相关问题的解决方案。一般而言,设计模式有四个基本要素:
Throwable
2020/06/23
19.7K1
设计模式概念和七大原则
设计模式的七大原则:打造更高效的软件系统
设计模式是我们构建软件系统的基石,它们提供了通用的解决方案来解决常见的设计问题。在这篇文章中,我们将探讨设计模式的七大原则,它们能够指导我们如何更好地使用设计模式,帮助我们构建更高效,更灵活的软件系统。
运维开发王义杰
2023/08/10
3170
设计模式的七大原则:打造更高效的软件系统
软件开发中的原则
一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。(Every object should have a single responsibility, and that responsibility should be entirely encapsulated by the class.),即又定义有且仅有一个原因使类变更。
lyb-geek
2018/07/26
5920
软件开发中的原则
设计模式的六大原则
原则思想:一个方法只负责一件事情。 描述:单一职责原则很简单,一个方法 一个类只负责一个职责,各个职责的程序改动,不影响其它程序。 这是常识,几乎所有程序员都会遵循这个原则。 优点:降低类和类的耦合,提高可读性,增加可维护性和可拓展性,降低可变性的风险。
用户7798898
2022/05/09
1.3K0
面向对象的 6 个基本原则
一个类只做它该做的事情。 是指一个类的功能要单一, 一个类只负责一个职责。 一个类只做它该做的事情(高内聚)。 在面向对象中, 如果只让一个类完成它该做的事, 而不涉及与它无关的领域就是践行了高内聚的原则。
desperate633
2018/08/23
4020
『设计模式』--常见面向对象设计原则
所谓单一职责原则就是一个类仅有一个引起它变化的原因。这里变化的原因就是所说的“职责”。如果一个类有多个引起它变化的原因,那么也就意味着这个类有多个职责,再进一步说,就是把多个职责耦合在一起了。
风骨散人Chiam
2020/10/28
3090
一篇文章让你读懂设计模式的七大原则;不要错过
主要是为了在编码过程中面临着来自耦合性、内聚性以及可维护性、重用性、灵活性等多方面的挑战
@派大星
2023/06/28
1270
一篇文章让你读懂设计模式的七大原则;不要错过
设计模式六大原则
  单一职责原则又称为单一功能原则,即不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。
那一叶随风
2018/08/22
2840
设计模式六大原则
设计模式-七大原则(图解一目了然)
软件设计模式(Design pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。
唔仄lo咚锵
2020/10/09
2.7K0
设计模式-七大原则(图解一目了然)
软件设计的七大原则
写出高质量、易维护、高可用的代码是每一个程序员的追求,那么,究竟什么样的代码才是易于维护与扩展的好代码呢?本文,我们就来介绍软件开发过程中的七大原则,一同来管窥一二。
用户3147702
2022/06/27
2.2K0
软件设计的七大原则
设计模式——七大原则
设计模式——七大原则
Java架构师必看
2021/05/14
3040
dart设计模式之六大原则
参考 模式分析,模式难点,模式解决问题,优点,缺点,模式应用场景,模式代码(基于dart)
徐建国
2021/08/06
3220
设计模式七大原则
编写软件过程中,程序员面临着来自 耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性 等多方面的挑战,设计模式是为了让程序(软件),具有如下特征:
星哥玩云
2022/09/14
2980
设计模式七大原则
面向对象设计的五项基本原则
面向对象设计(OOD)是面向对象编程(OOP)必不可少的一个环节,只有好的设计,才能保障程序的质量。面向对象设计的主要任务就是类的设计,不少面向对象(OO)的先驱和前辈已经提出了很多关于类的设计原则,用于指导OOP,其中就包括类设计的五项基本原则。
恋喵大鲤鱼
2018/08/03
9930
OOAD之设计原则
衡量软件设计质量的首要标准是该设计是否能满足软件的功能需求。除了功能需求以外,还有很多衡量软件设计质量的标准,包括可读性、可复用性、可扩展性、可维护性等。
架构之家
2022/09/27
3120
OOAD之设计原则
设计模式——六大原则[通俗易懂]
1. SingleResponsibilities Principle 定义:就一个类而言,应该仅有一个引起它变化的原因。
全栈程序员站长
2022/08/09
2560
设计模式——六大原则[通俗易懂]
java代码设计的6+1大原则
1.开闭原则(Open Close Principle) 定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。 开放-封闭原则的意思就是说,你设计的时候,时刻要考虑,尽量让这个类是足够好,写好了就不要去修改了,如果新需求来,我们增加一些类就完事了,原来的代码能不动则不动。这个原则有两个特性,一个是说“对于扩展是开放的”,另一个是说“对于更改是封闭的”。面对需求,对程序的改动是通过增加新代码进行的,而不是更改现有的代码。这就是“开放-封闭原则”的精神所在 比如,刚开始需求只是写加法程序,很快在client类中完成后,此时变化没有发生,需求让再添加一个减法功能,此时会发现增加功能需要修改原来这个类,这就违背了开放-封闭原则,于是你就应该考虑重构程序,增加一个抽象的运算类,通过一些面向对象的手段,如继承、动态等来隔离具体加法、减法与client耦合,需求依然可以满足,还能应对变化。此时需求要添加乘除法功能,就不需要再去更改client及加减法类,而是增加乘法和除法子类即可。 绝对的修改关闭是不可能的,无论模块是多么的‘封闭‘,都会存在一些无法对之封闭的变化,既然不可能完全封闭,设计人员必须对于他设计的模块应该对哪种变化封闭做出选择。他必须先猜测出最有可能发生的变化种类,然后构造抽象来隔离那些变化。在我们最初编写代码时,假设变化不会发生,当变化发生时,我们就创建抽象来隔离以后发生同类的变化。 我们希望的是在开发工作展开不久就知道可能发生的变化,查明可能发生的变化所等待的时候越长,要创建正确的抽象就越困难。开放-封闭原则是面向对象设计的核心所在,遵循这个原则可以带来面向对象技术所声称的巨大好处,也就是可维护、可扩展、可复用、灵活性好。开发人员应该仅对程序中呈现出现频繁变化的那些部分做出抽象,然而对于应用程序中的每个部分都刻意地进行抽象同样不是一个好主意,拒绝不成熟的抽象和抽象本身一样重要。开放-封闭原则,可以保证以前代码的正确性,因为没有修改以前代码,所以可以保证开发人员专注于将设计放在新扩展的代码上。 简单的用一句经典的话来说:过去的事已成历史,是不可修改的,因为时光不可倒流,但现在或明天计划做什么,是可以自己决定(即扩展)的。
lyb-geek
2018/07/26
9660
2.设计模式-七大原则(C++)
任何一个设计模式都离不开七大原则中的任一原则.所以七大原则非常重要,只要我们明白了七大原则,就可以知道如何在项目中使用什么设计原则了.
诺谦
2021/07/08
6290
设计原则:面向对象设计原则详解
我们在应用程序开发中,一般要求尽量两做到可维护性和可复用性。 应用程序的复用可以提高应用程序的开发效率和质量,节约开发成本,恰当的复用还可以改善系统的可维护性。而在面向对象的设计里面,可维护性复用都是以面向对象设计原则为基础的,这些设计原则首先都是复用的原则。遵循这些设计原则可以有效地提高系统的复用性,同时提高系统的可维护性。 面向对象设计原则和设计模式也是对系统进行合理重构的指导方针。
黄规速
2022/04/14
2.6K0
设计原则:面向对象设计原则详解
相关推荐
『设计模式』开发设计的七大原则,我做人还是挺有原则,那些代码呢?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文