首页
知识
文库
登录
|
注册
首页
最近更新
所有主题
我的主题
我的收藏
首页
·
知识
·
架构设计
面向对象设计的原则指南
网友
其它 | http://www.lifevv.com
编辑:
德仔
图片来源:网络
我们在进行面向对象设计(OOD)时应该怎样进行,遵循什么原则呢?我们或许听说过设计模式,那是针对特定的问题提出的特定的解决方法。
我们在进行面向对象设计(OOD)时应该怎样进行,遵循什么原则呢?我们或许听说过设计模式,那是针对特定的问题提出的特定的解决方法。面向对象的设计从提出到现在经过很多人的经验和实践,也总结出了很多原则。
在设计开发中,如果能有意识地向这些原则靠拢,对我们的系统设计与开发会有很大的帮助,也是构筑具有稳定性,扩展性的系统的一个保障:
- 是否遵守了那些基本原则
- 如果违反了基本原则,是否存在合适的理由
这些被大师们总结出来的基本原则包括了:
1,类的设计原则
2,包的设计原则
2.1 包的内部关系方面(聚合性)的原则
2.2 包之间的关系方面(耦合性)的原则
类设计原则
The Single Responsibility Principle (SRP) - OO设计的单一职责原则
There should never be more than one reason for a class to change.
永远不要让一个类存在多个改变的理由。
The Open-Closed Principle (OCP) - 面向对象软件设计的开闭原则
Software entities (classes, modules, function, etc.) should be open for extension, but closed for modification.
软件实体(模块,类,方法等)应该对扩展开放,对修改关闭。
The Liskov Substitution Principle (LSP) - OO设计的里氏替换原则
Functions that use pointers or references to base classes must be able to use objects of derived classes without knowing it.
所有引用基类的地方必须能透明地使用其子类的对象。
The Dependency Inversion Principle (DIP) - OO设计的依赖倒置原则
A. High level modules should not depend upon low level modules. Both should depend upon abstractions.
B. Abstractions should not depend upon details. Details should depend upon abstractions.
A. 高层模块不应该依赖于低层模块,二者都应该依赖于抽象
B. 抽象不应该依赖于细节,细节应该依赖于抽象
The Interface Segregation Principle (ISP) - OO设计的接口分隔原则
Clients should not be forced to depend upon interfaces that they do not use.
不能强迫用户去依赖那些他们不使用的接口。
包设计原则
包的内部关系方面(聚合性)的原则
The Release Reuse Equivalency Principle (REP) - OO设计的重用发布等价原则
The granule of reuse is the granule of release.
重用粒度等价于发布粒度。
The Common Reuse Principle (CRP) - OO设计的全部重用原则
The classes in a package are reused together. If you reuse one of the classes in a package, you reuse them all.
包的所有类被一起重用。如果你重用了其中的一个类,就重用全部。
The Common Closure Principle (CCP) - OO设计的共同封闭原则
The classes in a package should be closed together against the same kinds of changes. a change that affects a package affects all the classes in that package.
一个包中所有的类应该对同一种类型的变化关闭。一个变化影响一个包,便影响了包中所有的类。
包之间的关系方面(耦合性)的原则
The Acyclic Dependencies Principle (ADP) - OO设计的无环依赖原则
The dependency structure between packages must be a directed acyclic graph (DAG). That is, there must be no cycles in the dependency structure.
包之间的依赖结构必须是一个直接的无环图形(DAG)。也就是说,在依赖结构中不允许出现环(循环依赖)。
The Stable Dependencies Principle (SDP) - OO设计的稳定依赖原则
The dependencies between packages in a design should be in the direction of the stability of the packages. A package should only depend upon packages that are more stable that it is.
一个设计中的包之间的依赖应该朝着稳定的方向进行。一个包只应该依赖那些比自己更稳定的包。
The Stable Abstractions Principle (SAP) - OO设计的稳定抽象等价原则
Packages that are maximally stable should be maximally abstract. Instable packages should be concrete. The abstraction of a package should be in proportion to its stability.
最稳定的包应该是最抽象的包。不稳定的包应该是具体的包。包的抽象程度跟它的稳定性成正比。
本文作者:网友 来源:其它 | http://www.lifevv.com
CIO之家 www.ciozj.com 微信公众号:imciow
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读
一文搞懂微服务架构演进
一文详解微服务架构
迄今为止最完整的DDD实践
也许感兴趣的
.
制造企业MES功能架构及实施规划流程
.
如何做好私域运营
.
数据脱敏技术
.
数据中台建设的目标、流程及四大要点
.
数智时代,业财融合分析平台如何重新定义商业智能
.
企业成本管理痛点分析,如何搭建成本管理体系?
.
集团数据备份与恢复管理制度
我们推荐的
.
一文详解微服务架构
.
迄今为止最完整的DDD实践
.
多维度规划业务架构
.
企业架构之业务架构
.
vivo全球商城库存系统架构设计与实践
.
一文看懂DDD 领域驱动设计
.
供应链商品域DDD实践
.
领域驱动设计(DDD)的几种典型架构
主题最新
.
一文搞懂微服务架构演进
.
一文详解微服务架构
.
迄今为止最完整的DDD实践
.
全链路压测自动化实践
.
多维度规划业务架构
.
企业架构之业务架构
.
需求管理完整指南
.
软件安全设计原则
.
应用部署初探:微服务的3大部署模式
看看其它的
收藏至微信