加载中 ...
首页 > 新闻资讯 > 经验心得 正文

面向对象设计的设计原则

2019-03-23 07:30:35 来源:沈阳软件公司 作者:沈阳软件开发

  1)只与你直接的朋侪们通讯。

  2)不要跟“生疏人”语言。

  3)每一个软件单元对其他的单元都只有最少的知识,而且局限于那些与本单元亲近相关的软件单元。

  5.3 狭义的迪米特规则

  若是两个类不必相互直接通讯,那么这两个类就不应当发生直接的相互作用。若是其中的一个类需要挪用另一个类的某一个要领的话,可以通过圈外人转发这个挪用。

  朋侪圈简直定,“朋侪”条件:

  1)当前工具自己(this)

  2)以参量形式传入到当前工具要领中的工具

  3)当前工具的实例变量直接引用的工具

  4)当前工具的实例变量若是是一个群集,那么群集中的元素也都是朋侪

  5)当前工具所建立的工具

  任何一个工具,若是知足上面的条件之一,就是当前工具的“朋侪”;否则就是“生疏 人”。

  弱点:会在系统里造出大量的小要领,散落在系统的各个角落。

  与依赖倒转原则互补使用。

  5.4 狭义的迪米特规则的弱点:

  在系统里造出大量的小要领,这些要领仅仅是通报间接的挪用,与系统的商务逻辑无关。

  遵照类之间的迪米特规则会是一个系统的局部设计简化,由于每一个局部都不会和远距离的工具有直接的关联。可是,这也会造成系统的差别模块之间的通讯效率降低,也会使系统的差别模块之间不容易协调。

  5.5 迪米特规则与设计模式

  门面(外观)模式和调停者(中介者)模式现实上就是迪米特规则的详细应用。

  5.6 广义的迪米特规则

  迪米特规则的主要用意是控制信息的过载。在将迪米特规则运用到系统设计中时,要注重下面的几点:

  1)在类的划分上,应当建立有弱耦合的类。

  2)在类的结构设计上,每一个类都应当只管降低成员的会见权限。

  3)在类的设计上,只要有可能,一个类应当设计成稳定类。

  4)在对其他类的引用上,一个工具对其工具的引用应当降到最低。

  5.7 广义迪米特规则在类的设计的体现

  1)优先思量将一个类设置成稳定类

  2)只管降低一个类的会见权限

  3)审慎使用Serializable

  4)只管降低成员的会见权限

  5)取代C Struct

  迪米特规则又叫作最少知识原则(Least Knowledge Principle或简写为LKP),就是说一个工具应当对其他工具有尽可能少的相识。

  5.8 怎样实现迪米特规则

  迪米特规则的主要用意是控制信息的过载,在将其运用到系统设计中应注重以下几点:

  1) 在类的划分上,应当建立有弱耦合的类。类之间的耦合越弱,就越有利于复用。

  2) 在类的结构设计上,每一个类都应当只管降低成员的会见权限。一个类不应当public自己的属性,而应当提供取值和赋值的要领让外界间接会见自己的属性。

  3) 在类的设计上,只要有可能,一个类应当设计成稳定类。

  4) 在对其它工具的引用上,一个类对其它工具的引用应该降到最低。

  六、 接口隔离原则(I沈阳软件制作nterface Segregation Principle, ISP 

      6.1 观点

  接口隔离原则:使用多个专门的接口比使用单一的总接口要好。也就是说,一个类对另外一个类的依赖性应当是建设在最小的接口上。     

  这里的"接口"往往有两种差别的寄义:一种是指一个类型所具有的要领特征的荟萃,仅仅是一种逻辑上的抽象;另外一种是指某种语言详细的"接口"界说,有严酷的界说和结构。好比C#语言内里的Interface结构。对于这两种差别的寄义,ISP的表达方式以及寄义都有所差别。(上面说的一个类型,可以明白成一个类,我们界说了一个 类,也就是界说了一种新的类型)     

  当我们把"接口"明白成一个类所提供的所有要领的特征荟萃的时间,这就是一种逻辑上的 观点。接口的划分就直接带来类型的划分。这里,我们可以把接口明白成角色,一个接口就只是代表一个角色,每个角色都有它特定的一个接口,这里的这个原则可以叫做"角色隔离原则"。

“沈阳软件公司”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与

我们联系删除或处理,客服QQ:55506560,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同

其观点或证实其内容的真实性。