设计模式手册.pdf

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

设计模式⼿册

前⾔

1995年,GoF(GangofFour,四⼈组/四⼈帮)合作出版了《设计模式:可复⽤⾯向对象软件的基

础》⼀书,共收录了23种设计模式,从此树⽴了软件设计模式领域的⾥程碑,⼈称「GoF设计模式」

设计模式的⽬的是为了提⾼代码重⽤性、可读性、可扩展性、可靠性,使得程序呈现出⾼内聚、低耦合

的特性。

设计原则(OOD7种)

1、开闭原则(OCP:Open-closedprinciple)

概念

1、⼀个软件实体应当对扩展开放,对修改关闭。

2、当应⽤的需求改变时,在不修改软件实体的源代码前提下,可以扩展模块的功能,使其满⾜新的需

求。

出处:由勃兰特·梅耶(BertrandMeyer)1988年的著作《⾯向对象软件构造》⼀书中提出

应⽤场景

2、单⼀职责原则(SRP:Singleresponsibilityprinciple)

概念

⼀个类只允许有⼀个职责。⾼内聚,降低耦合

出处:由罗伯特·C.⻢丁(RobertC.Martin)于《敏捷软件开发:原则、模式和实践》⼀书中提出的

应⽤场景

单⼀职责原则规定⼀个类应该有且仅有⼀个引起它变化的原因,否则类应该被拆分

3、迪⽶特法则(LOD:LawofDemeter)

概念

迪⽶特法则(LawofDemeter)⼜叫作最少知识原则(TheLeastKnowledgePrinciple),⼀个类对

于其他类知道的越少越好,就是说⼀个对象应当对其他对象有尽可能少的了解,只和朋友通信,不和陌

⽣⼈说话。英⽂简写为:LOD。

出处:产⽣于1987年美国东北⼤学(NortheasternUniversity)的⼀个名为迪⽶特(Demeter)的研

究项⽬,由伊恩·荷兰(IanHolland)提出,被UML创始者之⼀的布奇(Booch)普及,后来⼜因为

在经典著作《程序员修炼之道》提及⽽⼴为⼈知

应⽤场景

即便是必要依赖,也要尽量降低依赖的次数。

⻔⾯模式(Facade)和中介模式(Mediator),都是迪⽶特法则应⽤的例⼦。

4、⾥⽒替换原则(LSP:TheLiskovSubstitutionPrinciple)

概念

1、所有⼦类的⾏为功能必须和使⽤者对其⽗类的期望保持⼀致,如果⼦类达不到这⼀点,那么必然违

反⾥⽒替换原则。

2、⾥⽒替换原则⽬的就是要保证继承关系的正确性。⾥⽒替换原则是使代码符合开闭原则的⼀个重要

保证。

出处:⾥⽒替换原则(LiskovSubstitutionPrinciple,LSP)由⿇省理⼯学院计算机学实验室的⾥

斯夫(Liskov)⼥⼠在1987年的“⾯向对象技术的⾼峰会议”(OOPSLA)上发表的⼀篇⽂章《数

据抽象和层次》(DataAbstractionandHierarchy)⾥提出来的

应⽤场景

⾥⽒替换原则主要阐述了有关继承的⼀些原则,也就是什么时候应该使⽤继承,什么时候不应该使⽤

继承

5、依赖倒置原则(DIP:DependenceInversionPrinciple)

1、⾼层模块不要依赖低层模块,它们都应该依赖于抽象。

2、依赖倒置原则的核⼼思想是⾯向接⼝编程,不应该⾯向实现类编程。

出处:ObjectMentor公司总罗伯特·⻢丁(RobertC.Martin)于1996年在C++Report上发表的

⽂章。

应⽤场景

在java中,抽象指的是接⼝或抽象类,细节就是具体的实现类

使⽤接⼝或抽象类的⽬的是制定好规范,⽽不涉及任何具体的操作,把展现细节的任务交给他们的实

现类去完成

其中依赖注⼊设计模式就是充分体现了依赖倒置的原则,对象依赖传递的三种⽅法

构造⽅法传递、setter传递、接⼝传递

6、接⼝隔离原则(ISP:InterfaceSegregationPrinciple)

概念

1、接⼝隔离原则(InterfaceSegregationPrinciple,ISP)要求程序员尽量将臃肿庞⼤的接⼝拆分成

更⼩的和更具体的接⼝,让接⼝中只包含客⼾感兴趣的⽅法。

2、该原则还有另外⼀个定义:⼀个类对另⼀个类的依赖应该建⽴在最⼩的接⼝上。

出处:2002年罗伯特·C.⻢丁提出了接⼝隔离原则

应⽤场景

要求在接⼝中尽量少公布public⽅法,接⼝是对外的承诺,承诺越少对系统的开发越有利

7、合成复⽤原则(CRP:CompositeReu

文档评论(0)

易油科技首席架构师 + 关注
实名认证
服务提供商

精通系统架构设计,能够设计可扩展、高效、安全的系统。 面对复杂问题时,能够运用创造性思维找到解决方案。 带领团队落地多个大型项目。

1亿VIP精品文档

相关文档