摘抄自《敏捷软件开发-原则、方法与实践》-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)不要构造具体的超类原则
避免维护具体的超类。
分享到:
相关推荐
《敏捷软件开发原则、模式与实践》一书是由著名软件开发专家、软件工程大师Robert C. Martin所著。这本书自出版以来,就被视为敏捷开发领域内的经典之作,对于软件开发人员、项目经理以及软件项目领导者来说,它提供...
《敏捷软件开发:原则模式与实践》是由著名软件开发专家、软件工程大师Robert C. Martin(别名Uncle Bob)所著的指导书籍,旨在为软件开发人员、项目经理以及软件项目领导提供解决实际问题的方法和策略。本书将敏捷...
本书中,享誉全球的软件开发专家和软件工程大师RobertC.Martin深入而生动地使用真实案例讲解了面向对象基本原则、重要的设计模式、UML和敏捷实践等程序员必备的知识。本书于2003年荣获第13届Jolt大奖,是C++和Java...
《敏捷软件开发:原则、模式与实践》是Robert C. Martin(简称Uncle Bob)的一部经典著作,这本书深入探讨了敏捷开发的理念、方法和工具,尤其针对C#编程语言进行了详细阐述。作为一本实践导向的技术书籍,它旨在...
通过以上对面向对象数据结构与软件开发的核心知识点的介绍,我们可以看出,面向对象的设计思想不仅有助于构建更加灵活和可维护的软件系统,而且在实际开发过程中,结合合适的数据结构和设计模式,能够显著提高开发...
面向对象过程设计是一种重要的软件开发方法,它结合了面向对象的思想和迭代的统一过程(Unified Process,UP)原则,以创建高效、可维护的软件系统。在这个主题中,"使用UNL与统一过程"可能指的是使用统一建模语言...
《敏捷软件开发:原则、模式与实践》(Agile Software Development: Principles, Patterns, and Practices)是由全球知名的软件开发专家、软件工程大师Robert C. Martin(俗称“Uncle Bob”)所著。这本书全面地介绍...
### 敏捷软件开发核心理念与实践 #### 敏捷宣言与原则 敏捷软件开发,源于21世纪初,由一群软件开发领域的先驱者共同创立,旨在应对快速变化的市场需求,提高软件开发效率和质量。《敏捷软件开发宣言》明确提出了...
在本资源中,我们主要探讨的是敏捷软件开发的原则、模式与实践,特别是在C++编程语言中的应用。这一主题源于《敏捷软件开发》一书的第19章,该章节通过一个具体的薪水支付案例来阐述敏捷开发的方法。在这个案例中,...
【敏捷软件开发C#版源码】是针对C#编程语言的一个实践项目,它与《敏捷软件开发》这本书紧密关联,旨在帮助读者更好地理解和应用敏捷开发的理念和方法。敏捷开发是一种以人为本、迭代、增量的软件开发方法论,强调...
本书不仅是一部深入浅出、生动易懂的面向对象原则与设计模式著作,而且还是一部通俗的敏捷方法导引书和快速实用的UML教程。通过本书你会发现,许多以前看起来非常枯燥费解的概念,忽然间都豁然开朗,变得鲜活生动...
面向对象的程序设计(OOP)是一种编程范式,它使用“对象”来设计软件。对象可以包含数据,以字段(通常称为属性或成员变量)的形式表示,以及代码,以方法(或函数)的形式表示。OOP的概念包括继承、封装和多态性。...
面向对象的游戏开发是一种高效且灵活的方法,用于构建复杂的游戏项目。这一领域涵盖了多个关键知识点,包括游戏设计原理、面向对象编程、游戏引擎的使用以及团队协作。以下是对这些主题的详细探讨: 1. **游戏开发...
2. 设计原则:如单一职责原则、开放封闭原则、依赖倒置原则等,这些都是良好的面向对象设计的基础。 3. UML(统一建模语言):学习如何使用UML图表来表示类、对象、关系以及它们之间的交互。 4. 面向对象分析与设计...
Robert Martin在《敏捷软件开发:原则、模式与实践》这本书中,通过真实案例展示了如何利用敏捷开发和极限编程来设计、测试和重构软件。书中不仅提供了可重用的C++和Java源代码,还重点阐述了如何运用UML和设计模式...
总而言之,这本书是Ruby编程社区中关于面向对象设计的宝贵资源,它不仅帮助读者理解Ruby语言,更重要的是让读者学会如何在实践中有效地应用面向对象的设计原则和模式,以提高软件开发的质量和效率。
4. "敏捷软件开发:原则、模式与实践.pdf" - 这本书可能是对敏捷宣言及其十二原则的深入探讨,同时可能包含了各种敏捷实践,如用户故事、站立会议、回顾会议、持续集成等。此外,书中可能还会介绍一些适用于敏捷环境...
- 《敏捷软件开发:原则、模式与实践》Robert C. Martin - 《重构:改善既有代码的设计》Martin Fowler - 《Refactoring to Patterns》Joshua Kerievsky 以上书籍不仅可以帮助开发者深入理解设计模式的概念,还能...