Java基础-面向对象编程的几个原则.docxVIP

Java基础-面向对象编程的几个原则.docx

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

Java基础:面向对象编程的几个原则

一个模块在扩展性方面应当是开放的而在更改性方面应当是封闭的。因此在进展面对对象设计时要尽量考虑接口封装机制、抽象机制和多态技术。该原则同样适合于非面对对象设计的方法,是软件工程设计方法的重要原则之一。我们以收音机的例子为例,叙述面对对象的开闭原则。我们收听节目时需要翻开收音机电源,对准电台频率和进展音量调整。但是对于不同的收音机,实现这三个步骤的细节往往有所不同。比方自动收缩电台的收音机和按钮式收缩在操作细节上并不一样。因此,我们不太可能针对每种不同类型的收音机通过一个收音机类来实现(通过重载)这些不同的操作方式。但是我们可以定义一个收音机接口,供应开机、关机、增加频率、降低频率、增加音量、降低音量六个抽象方法。不同的收音机继承并实现这六个抽象方法。这样新增收音机类型不会影响其它原有的收音机类型,收音机类型扩展极为便利。此外,已存在的收音机类型在修改其操作方法时也不会影响到其它类型的收音机。

2.替换原则(theLiskovSubstitutionPrincipleLSP)

子类应当可以替换父类并消失在父类能够消失的任何地方。这个原则是Liskov于1987年提出的设计原则。它同样可以从BertrandMeyer的DBC(DesignbyContract)的概念推出。

我们以学生为例,夜校生为学生的子类,因此在任何学生可以消失的地方,夜校生均可消失。这个例子有些牵强,一个能够反映这个原则的例子时圆和椭圆,圆是椭圆的一个特别子类。因此任何消失椭圆的地方,圆均可以消失。但反过来就可能行不通。

运用替换原则时,我们尽量把类B设计为抽象类或者接口,让C类继承类B(接口B)并实现操作A和操作B,运行时,类C实例替换B,这样我们即可进展新类的扩展(继承类B或接口B),同时无须对类A进展修改。

3.依靠原则(theDependencyInversionPrincipleDIP)

在进展业务设计时,与特定业务有关的依靠关系应当尽量依靠接口和抽象类,而不是依靠于详细类。详细类只负责相关业务的实现,修改详细类不影响与特定业务有关的依靠关系。

在构造化设计中,我们可以看究竟层的模块是对高层抽象模块的实现(高层抽象模块通过调用底层模块),这说明,抽象的模块要依靠详细实现相关的模块,底层模块的详细实现发生变动时将会严峻影响高层抽象的模块,明显这是构造化方法的一个“硬伤“.

面对对象方法的依靠关系刚好相反,详细实现类依靠于抽象类和接口。

为此,我们在进展业务设计时,应尽量在接口或抽象类中定义业务方法的原型,并通过详细的实现类(子类)来实现该业务方法,业务方法内容的修改将不会影响到运行时业务方法的调用。

4.接口分别原则(theInterfaceSegregationPrincipleISP)

采纳多个与特定客户类有关的接口比采纳一个通用的涵盖多个业务方法的接口要好。

ISP原则是另外一个支持诸如COM等组件化的使能技术。缺少ISP,组件、类的可用性和移植性将大打折扣。

这个原则的本质相当简洁。假如你拥有一个针对多个客户的类,为每一个客户创立特定业务接口,然后使该客户类继承多个特定业务接口将比直接加载客户所需全部方法有效。

以上四个原则是面对对象中经常用到的原则。此外,除上述四原则外,还有一些常用的阅历诸如类构造层次以三到四层为宜、类的职责明确化(一个类对应一个详细职责)等可供我们在进展面对对象设计参考。但就上面的几个原则看来,我们看到这些类在几何分布上呈现树型拓扑的关系,这是一种良好、开放式的线性关系、具有较低的设计简单度。一般说来,在软件设计中我们应当尽量避开消失带有闭包、循环的设计关系,它们反映的是较大的耦合度和设计简单化。

文档评论(0)

180****1080 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档