面向对象设计原则

【UML学习】--包图 【前言】     包图是怎么来的?     在面向对象开发的概念里,类是构造整个系统的基本构造块。但是一个庞大的系统中包含的类是成百上千个的,而且这些类之间的关系也是阡陌交错,所以处理起来十分复杂,这时候就引入了“包”这个概念,可以说包是一种分组的构造块或者说是一个容器。 一、关于包,这些你一定要知道: •名称:每个包都必须有一个与其它包相区别的名称。可以用简单名称和路径名称来表示。 阅读详情

(1)SRP 单一职责原则
就一个类而言,应该仅有一个引起它变化的原因。
职责即为"变化的原因".

(2)OCP (Open-Closed Principle)开放封闭原则
软件实体(类、模块、函数等)应该是可以扩展的,但是不可修改。
对于扩展是开放的,对于更改是封闭的.
关键是抽象.将一个功能的通用部分和实现细节部分清晰的分离开来.
开发人员应该仅仅对程序中呈现出频繁变化的那些部分作出抽象.拒绝不成熟的抽象和抽象本身一样重要.

(3)LSP Liskov替换原则
子类型必须能替换掉他们的基本类型

(4)DIP 依赖倒置原则
抽象不应该依赖于细节。细节应该依赖于抽象。
Hollywood原则: "Don't call us, we'll call you".程序中所有的依赖关系都应该终止于抽象类和接口。针对接口而非实现编程。
任何变量都不应该持有一个指向具体类的指针或引用。
任何类都不应该从具体类派生。
任何方法都不应该覆写他的任何基类中的已经实现了的方法。

(5)ISP(Interface Segregation Priciple) 接口隔离原则
不应该强迫客户依赖于他们不用的方法。接口属于客户,不属于他所在的类层次结构。
多个面向特定用户的接口胜于一个通用接口。

(6)REP 重用发布等价原则
重用的粒度就是发布的粒度.

(7)CCP 共同重用原则
一个包中的所有类应该是共同重用的。如果重用了包中的一个类,那么就要重用包中的所有类。
相互之间没有紧密联系的类不应该在同一个包中。

(8)CRP 共同封闭原则
包中的所有类对于同一类性质的变化应该是共同封闭的。一个变化若对一个包影响,则将对包中的所有类产生影响,而对其他的包不造成任何影响.

(9)ADP 无依赖原则
在包的依赖关系中不允许存在环.
细节不应该被依赖.

(10)SDP 稳定依赖原则
朝着稳定的方向进行依赖.
应该把封装系统高层设计的软件(比如抽象类)放进稳定的包中,不稳定的包中应该只包含那些很可能会改变的软件(比如具体类)。

(11)SAP 稳定抽象原则
包的抽象程度应该和其他稳定程度一致.
一个稳定的包应该也是抽象的,一个不稳定的包应该是抽象的.

(12)DAP(Default Abstraction Principle)缺省抽象原则
在接口和实现接口的类之间引入一个抽象类,这个类实现了接口的大部分操作.

(13)IDP(Interface Design Principle)接口设计原则
规划一个接口而不是实现一个接口。

(14)BBP(Black Box Principle)黑盒原则
多用类的聚合,少用类的继承。

(15)DCSP(Don't Concrete Supperclass Principle)不要构造具体的超类原则
避免维护具体的超类。

《敏捷软件开发-原则、方法与实践》-Robert C. Martin

DW3000芯片驱动API介绍 详细介绍DW3000驱动程序API的调用流程说明和中断处理程序流程说明 阅读详情

相关推荐

31、贝叶斯认知建模与隐马尔可夫模型:理论与应用

本文探讨了贝叶斯认知建模与隐马尔可夫模型(HMM)的理论基础及其在认知科学和神经科学中的应用。重点介绍了贝叶斯定理和HMM的基本原理,并结合实际案例,如情绪识别系统和脑机接口(BCI),展示了它们在处理复杂认知任务中的强大能力。文章还讨论了贝叶斯-HMM模型的技术细节、优势与局限性,以及未来的发展前景。

meat5的博客 124

包的设计原则

重用发布等价原则前言RobertC.Martin氏为我们总结了在面向对象的设计(OOD)中应该遵循的原则,这些原则被称为“PrinciplesofOOD”,关于“PrinciplesofOOD”的相关文章可以从ObjectMenter得到。本文介绍TheReleaseReuseEquivalencyPrinciple(REP):重用发布等价原则。概要Thegranuleofreuseisthegranuleofrelease.重用粒度等价于发布粒度。重用的概念重用主要是从用户的观点来看的。对用户来说,使用某个发布单位(组件,类,类群等),如果作者因为某种原因对其作了修改而发布了一个新的版本,用

利用稀疏优化和深度学习的音频去噪方法_matlab

An audio declipping method that takes advantages of both sparse optimization and deep learning.

面向对象:重用发布等价原则(REP)

     介绍一下Robert C. Martin提出的面向对象设计原则中的重用发布等价原则。参考文档(http://www.objectmentor.com/resources/articles/granularity.pdf)     重用发布等价原则:Release Reuse Equivalency Principle (REP)。重用的粒度就是发布的粒度(The granu

步行者的专栏 7107

REP(重用发布等价原则)

重用的粒度等于发布的粒度。   只有通过一个跟踪系统发布的组件才可以被有效重用,此粒度通常以包为单位。这就是说,为了有效地重用,代码必须是以包为单位,完整且透明。以包为单位的代码并不表示它是可被重用的,我见太多这样做而失败的案例。只有真正发布的,且透明的完整代码才存在被重用的可能性。同时,重用也驱动我们在写代码时构建更小的包,业务逻辑分离得更彻底并保持完整。   就Java而言,访问子包的...

Less is more 2550

包的内聚性三原则、包的耦合性原则

一、包的内聚性三原则: 原则用途:用来指导软件开发者如何将类合理的划分到相应的包中。 前提条件:我们已经设计好了一些类,并且它们之间的相互关系也基本明确。由此可见,类的设计先于包的设计,实际开发中我们确实是采用“自底向上”的方式设计和规划包的。 (1)重用发布等价原则 REP(Reuse-Release Equivalence Principles) 任何一个开发者都知道,我们对源代码的重用必须是基于包的,如果那个人说某个单独的类可以重用,那完全是外行人说的。 可重用的包必须包含可重用的类。 (2

qq_32806781的博客 1744

面向对象的编码设计原则

10之前谈DDD时提及过当下很多标榜面向对象的语言,却是以面向过程来实现的问题。这里就从编码设计的角度来顺一下面向对象设计的一些思维。其实就像我正在梳理的设计模式一样,都是些老生常谈的东西,可是往往在实践的时候,这些老生常谈的东西会被“反刍”,总会有种常看常新的感觉。1。

sdgfafg_25的博客 1409

面向对象设计原则概述

对于面向对象软件系统的设计而言,在支持可维护性的同时,提高系统的可复用性是一个至关重要的问题,如何同时提高一个软件系统的可维护性和可复用性是面向对象设计需要解决的核心问题之一。在面向对象设计中,可维护性的复用是以设计原则为基础的。每一个原则都蕴含一些面向对象设计的思想,可以从不同的角度提升一个软件结构的设计水平。       面向对象设计原则为支持可维护性复用而诞生,这些原则蕴含在很多设计模式中

刘伟技术博客 4万+

面向对象十大设计原则

事实上,KISS 原则是较为广泛的原则,譬如其应用在建筑上面叫做轻奢,而应用在手机设计上面叫做极简风,他们所遵循的都是简单原则。那么在编程中的 KISS 原则,具体讲的是什么的简单呢?可能有人对此做严格定义,代码行数少的、或者说逻辑简单的,就是符合KISS 原则。但实际上,KISS 原则和之前的设计原则一样,都是。

angus52630的博客 1182

面向对象的七大设计原则

经艺术设计过的接口,就像蝴蝶一样在指尖翩翩起舞,令人沉醉....

2302_80067378的博客 2125

[C++设计模式] 深入理解面向对象设计原则

深入理解面向对象的设计,简略讲解关于面向对象设计原则

kevin_blog 1342

[OOP] 面向对象设计原则

面向对象六大设计原则: 单一职责原则 SRP:Single Responsibility Principle 里氏替换原则 LSP:Liskov SubStitution Principle 依赖倒置原则 DIP:Dependency Inversion Principle 接口分离原则 ISP:Interface Segregation Principle 最小知识原则 LKP:Least Knowledge Principle 开闭原则 OCP:Open-Close Principle

米碎师兄 694

UML包图设计六个准则

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34054931的博客 879

面向对象设计的原则

单一职责原则 SRP 就一个类而言,应该仅有一个引起它变化的原因 开放封闭原则 OCP 软件实体(类,模块,函数等)应该是可以扩展的,但是不可修改的。也就是对扩展开放,对修改封闭。 Liskov 替换原则 LSP 子类型必须能替换掉他们的基本类型 依赖倒置原则 DIP 抽象不应该依赖于细节,细节应该依赖于抽象 接口隔离原则 ISP 不应该强迫客户依赖于他们不用的方法,接口属于客户,不属于它所在的类层次结构。 重用发布等价原则 REP 重用的粒度就是发布的粒度 共同重用原则 CCP 一个包中的所有类应该是共同

m0_47696151的博客 227
上一篇: 用 Preferences API 存储对象
下一篇: 判断String中是否有汉字
leek2000
博客等级 码龄25年 7粉丝 97原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值