引言面向对象设计原则你知道吗?熟悉吗?除了封装,继承,多态你还了解多少OOD 原则?确认自己已是OOD精通的“大侠”请绕路。不知道,也别急,且听我细细道来。关键词和定义都提供双语,让我们感受下原汁原味,顺便学点专业英语&hellip ...
引言
get='_blank'>面向对象设计原则你知道吗?熟悉吗?除了封装,继承,多态你还了解多少OOD 原则?
确认自己已是OOD精通的“大侠”请绕路。
不知道,也别急,且听我细细道来。
关键词和定义都提供双语,让我们感受下原汁原味,顺便学点专业英语…
基本的面向对象原则(Basic OO principles)
作为专科出生程序员,上学的时候我们第一次接触面向对象编程(OOP)的语言时就会提及这三个最基本原则
- Encapsulation(封装)
- Inheritance(继承)
- Polymorphism(多态)
当然还也还有与之相关的一些原则 abstraction(抽象), association(关联), aggregation(聚合), and composition(组合)
这种原则就像 ABC 书,因为它们定义了面向对象世界的基础。
这些东西虽然听起来很熟悉,但您是否真正理解了,还需要晒晒你的代码啦…(事实是检验一切唯一的依据)
这知识就不再这里赘述啦,大家可自行google,百度,也可翻翻大学那些已经尘封已久的教科书,说不定还会捡起一些其他的回忆,。
熟悉的SOLID(‘类’层次设计原则)
面向对象设计原则科学界定最常见派生方法构建健壮且灵活的系统。
而SOLID原则又被证明是解决无法被基本的面向对象原则捕获的众多 OO 设计问题的最佳工具。 该不该掌握自己掂量,。
缩写 | 全称 | 中文名称 | 相关论文链接 |
SRP | Single Responsibility Principle | 单一责任原则 | The Single Responsibility Principle |
OCP | Open / Closed Principle | 开放封闭原则 | The Open Closed Principle |
LSP | Liskov Substitution Principle | 里氏替换原则 | The Liskov Substitution Principle |
ISP | Interface Segregation Principle | 接口分离原则 | The Interface Segregation Principle |
DIP | Dependency Inversion Principle | 依赖倒置原则 | The Dependency Inversion Principle |
单一责任原则
There should never be more than one reason for a class to change。
翻译:类修改的原因应(理由或者动机)该只有一个。
开放封闭原则
Software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification.
翻译:软件实体(类、模块、函数等)应该是可以扩展的,但是不可修改的。
里氏替换原则
Subtypes must be substitutable for their base types.
翻译:子类型(subtype)必须能够替换掉它们的基类型(base type)
依赖倒置原则
High level modules should not depend upon low level modules. Both should depend upon abstractions.
Abstractions should not depend upon details. Details should depend upon abstractions。
翻译:
A、 高层模块不应该依赖于低层模块,两者都应该依赖于抽象。
B、 抽象不应该依赖于细节,细节应该依赖于抽象。
接口分离原则
Clients should not be forced to depend upon methods that they do not use. Interfaces belong to clients, not to hierarchies.
翻译:应该强迫客户依赖于它们不要的方法。接口属于客户,不属于它所在的类层次结构。
包的设计原则
随着应用程序的规模和复杂度的增加,需要在更高的层次对它们进行组织。类对于小型应用程序来说事非常方便的组织单元,但是对于大型应用程序来 说,如果仅仅使用类作为唯一的组织单元,就会显得粒度过细。因此,就需要比类“大”的“东西”来辅助大型应用程序的组织。这个“东西”就是包 (package)。
本节描述了6个原则。前3个原则关注包的内聚性,这些原则能够指导我们如何把类划分到包中。后3个原则关注包的耦合性,这些原则帮助我们确定包之间的相互关系。
包的内聚性原则(粒度)
- Reuse-Release Equivalence Principle (REP) 重用-发布等价原则
- Common-Reuse Principle(CCP) 共同重用原则。
- Common-Closure Principle(CRP)共同封闭原则。
这3个关于包的内聚性原则,可以帮助开发者决定如何把类划分到包中。
这些原则依赖于这样的事实:至少已经存在一些类,并且它们之间的相互关系也已经确定。
因此,这些原则是根据“自底向上”的观点对类进行划分的。
包的耦合性原则(稳定性)
- Acyclic-Dependency Principle(ADP) 无环依赖原则 。
- Stable-Dependency Principle (SDP) 稳定依赖原则。
- Stable-Abstractions Principle (SAP) 稳定抽象原则。
这3个包的耦合性原则,用来处理包之间的关系。
这里,我们会再次碰到可开发性与逻辑设计之间的冲突力(tension)。
来自技术和行政方面的作用力都会影响到包的组织结构,并且这种作用力还是易变的。
1、Stable Abstractions Principle (SAP):稳定抽象等价原则
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.
海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com
原标题:除了封装,继承,多态 您还知道那些?
关键词:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。