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