你的位置:首页 > 软件开发 > ASP.net > 除了封装,继承,多态 您还知道那些?

除了封装,继承,多态 您还知道那些?

发布时间:2015-07-09 16:00:06
引言面向对象设计原则你知道吗?熟悉吗?除了封装,继承,多态你还了解多少OOD 原则?确认自己已是OOD精通的“大侠”请绕路。不知道,也别急,且听我细细道来。关键词和定义都提供双语,让我们感受下原汁原味,顺便学点专业英语&hellip ...

引言

get='_blank'>面向对象设计原则你知道吗?熟悉吗?除了封装,继承,多态你还了解多少OOD 原则?

确认自己已是OOD精通的“大侠”请绕路。

不知道,也别急,且听我细细道来。

关键词和定义都提供双语,让我们感受下原汁原味,顺便学点专业英语…

 

基本的面向对象原则(Basic OO principles)

作为专科出生程序员,上学的时候我们第一次接触面向对象编程(OOP)的语言时就会提及这三个最基本原则

  1. Encapsulation(封装)
  2. Inheritance(继承)
  3. Polymorphism(多态)

当然还也还有与之相关的一些原则 abstraction(抽象), association(关联), aggregation(聚合), and composition(组合)

 

这种原则就像 ABC 书,因为它们定义了面向对象世界的基础。

这些东西虽然听起来很熟悉,但您是否真正理解了,还需要晒晒你的代码啦…(事实是检验一切唯一的依据)

这知识就不再这里赘述啦,大家可自行google百度,也可翻翻大学那些已经尘封已久的教科书,说不定还会捡起一些其他的回忆,除了封装,继承,多态 您还知道那些?

熟悉的SOLID(‘类’层次设计原则)

面向对象设计原则科学界定最常见派生方法构建健壮且灵活的系统。

而SOLID原则又被证明是解决无法被基本的面向对象原则捕获的众多 OO 设计问题的最佳工具。 该不该掌握自己掂量,除了封装,继承,多态 您还知道那些?

缩写全称中文名称相关论文链接
SRPSingle Responsibility Principle单一责任原则The Single Responsibility Principle
OCPOpen / Closed Principle开放封闭原则The Open Closed Principle
LSPLiskov Substitution Principle里氏替换原则The Liskov Substitution Principle
ISPInterface Segregation Principle接口分离原则The Interface Segregation Principle
DIPDependency 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 (#换成@)。

可能感兴趣文章

我的浏览记录