摘抄自《敏捷软件开发-原则、方法与实践》-Robert C. Martin
(1)SRP 单一职责原则
就一个类而言,应该仅有一个引起它变化的原因。
职责即为"变化的原因".
(2)OCP 开放封闭原则
软件实体(类、模块、函数等)应该是可以扩展的,但是不可修改。
对于扩展是开放的,对于更改是封闭的.
关键是抽象.将一个功能的通用部分和实现细节部分清晰的分离开来.
开发人员应该仅仅对程序中呈现出频繁变化的那些部分作出抽象.拒绝不成熟的抽象和抽象本身一样重要.
(3)LSP Liskov替换原则
子类型必须能替换掉他们的基本类型
(4)DIP 依赖倒置原则
抽象不应该依赖于细节。细节应该依赖于抽象。
Hollywood原则: "Don't call us, we'll call you".程序中所有的依赖关系都应该终止于抽象类和接口。针对接口而非实现编程。
任何变量都不应该持有一个指向具体类的指针或引用。
任何类都不应该从具体类派生。
任何方法都不应该覆写他的任何基类中的已经实现了的方法。
(5)ISP 接口隔离原则
不应该强迫客户依赖于他们不用的方法。接口属于客户,不属于他所在的类层次结构。
多个面向特定用户的接口胜于一个通用接口。
(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)不要构造具体的超类原则
避免维护具体的超类。
分享到:
相关推荐
**面向对象设计准则**: 1. **模块化**:对象作为独立的模块,负责特定功能。 2. **抽象**:类是对一组具有共同特性和行为的对象的抽象。 3. **信息隐蔽**:通过封装实现对象内部状态的保护。 4. **弱耦合**:对象间...
面向对象设计准则包括模块化、抽象、信息隐蔽、低耦合、高内聚和可重用等。这些准则是面向对象软件设计的基础,它们指导着软件设计的整个过程。 6.1.2 面向对象设计的过程 面向对象设计的过程是一个迭代的过程,...
《UML面向对象设计基础》一书详细介绍了面向对象软件设计的基础知识,包括基本概念、符号表示、术语、准则和原理。面向对象设计是一种软件设计范式,强调通过对象来模拟现实世界中的问题域,以解决复杂软件系统的...
面向对象设计准则主要包括以下几个方面: 1. **模块化**:在面向对象编程中,对象作为基本的模块,封装了数据和操作数据的方法,提供了一种独立的、可复用的组件。 2. **抽象**:抽象分为过程抽象和数据抽象,允许...
#### 12.1 面向对象设计准则 面向对象设计(Object-Oriented Design, OOD)是指在软件开发过程中采用面向对象方法学来设计软件系统的一种方法。本章节重点介绍了面向对象设计中的六大准则,这些准则对于构建高质量...
1. **面向对象设计准则**: - **模块化**:对象作为基本模块,将数据结构与操作封装在一起,提高代码组织的清晰度。 - **抽象**:通过过程抽象和数据抽象,隐藏内部细节,只暴露必要的接口。 - **信息隐藏**:类...
面向对象设计的准则.pptx
本课程以最新ANSI(American National Standards Institute)C++作为准则,以美国Microsoft公司开发的Visual C++ 6.0为语言蓝本,系统介绍C++的主要语言特征,并用以讲述面向对象程序设计技术,使学生具有阅读和编写...
面向对象设计原则是软件工程领域中的重要组成部分,它旨在通过一系列设计准则来提高代码的质量、可维护性和可扩展性。本文将详细介绍面向对象设计的七大原则,并结合具体案例进行解析。 ### 面向对象设计原则概述 ...
面向对象设计原则是一系列指导软件开发人员构建高质量、易于维护和扩展的软件系统的准则。这些原则旨在帮助开发者创建更健壮、更灵活的系统,减少代码间的耦合度,并提高代码的重用性和可读性。以下是七个核心的面向...
#### 五、面向对象设计准则 为了提高软件的可维护性和可扩展性,面向对象设计遵循以下准则: 1. **针对接口编程,而不是针对实现编程**:通过依赖接口而非具体的实现类,降低模块间的耦合度。 2. **优先使用对象...
美 meilir page-jones 著 本书是关于面向对象软件设计的的基本概念、符号表示、术语、准则以及原理的书籍。
本学习材料深入探讨了面向对象分析(OOA)和面向对象设计(OOD)的方法,强调了分析和设计之间的关系,以及它们在软件生命周期中的重要性。 面向对象分析方法包括但不限于Rumbaugh方法(OMT),Coad/Yourdon方法和...
面向对象设计的准则包括: 1. 模块化:面向对象设计支持模块化设计的原则,对象就是模块,把数据结构和操作数据的方法紧密地结合在一起构成模块。 2. 抽象:面向对象方法不仅支持过程抽象,而且支持数据抽象。规格...
通过对面向过程和面向对象编程的理解,结合面向对象设计准则与设计模式的学习,可以显著提高软件项目的质量和效率。UML作为一种标准化的建模语言,在软件设计阶段扮演着重要角色,帮助开发者更好地理解和沟通系统的...
在面向对象设计中,有一些基本的设计准则和启发规则,例如: * 单一职责原则(SRP):一个类应该只有一个原因导致它需要修改。 * 开闭原则(OCP):一个类应该是 открыт для扩展,但闭合 для修改。 * ...