云南大学软件学院设计模式期末复习.docxVIP

云南大学软件学院设计模式期末复习.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第一章 1. 什么是模式? 模式 是在物体或事件上,产生的一种规律变化与自我重复的样式与过程。在模式之中,某些固定的元素不断以可预测的方式周期性重现。 2.什么是设计模式? 广义讲,软件设计模式是可解决一类软件问题并能重复使用的软件设计方案; 狭义讲,设计模式是对被用来在特定场景下解决一般设计问题的类和相互通信的对象的描述。是在类和对象的层次描述的可重复使用的软件设计问题的解决方案; 设计模式是在一个 上下文 中,对一个问题 的 解决方案,及其能够达到的效果。 3. 设计模式四要素 名称、上下文与问题、解决方案、效果 模式名称(Pattern Name) 问题(Problem):描述应该在何时使用模式。解释了设计问题和问题存在的前因后果,可能还描述模式必须满足的先决条件; 解决方案(Solution):描述了设计的组成成分、相互关系及各自的职责和协作方式。模式就像一个模板,可应用于多种场合,所以解决方案并不描述一个具体的设计或实现,而是提供设计问题的抽象描述和解决问题所采用的元素组合(类和对象); 效果(consequences ):描述模式的应用效果及使用模式应权衡的问题 4. 设计模式分类 23种设计模式:创建型:5种;结构型:7种;行为型:11种 5.面向对象的四个基本方法: 抽象(Abstraction) 封装(Encapsulation) 多态(Polymorphism) 继承(Inheritance) 6. 面向对象的设计原则 开闭原则 (OCP): 对于扩展是开放的(Open for extension)。这意味着模块的行为是可以扩展的。当应用的需求改变时,我们可以对模块进行扩展,使其具有满足那些改变的新行为。也就是说,我们可以改变模块的功能。 对于修改是关闭的(Closed for modification)。对模块行为进行扩展时,不必改动模块的源代码或者二进制代码。模块的二进制可执行版本,无论是可链接的库、DLL或者.EXE文件,都无需改动。 单一职责原则(SRP): 定义:就一个类而言,应该仅有一个引起它变化的原因; 每一个引起类变化的原因就是一个职责,当类具有多职责时,应把多余职责分离出去,分别创建一些类来完成每一个职责; 每一个职责都是一个变化的轴线,当需求变化时会反映为类的职责的变化; 里氏替换原则(LSP): 定义:所有引用基类的地方必须能透明地使用其子类的对象 里氏替换原则是继承复用的基石,只有当派生类可以替换掉其基类,而软件功能不受影响时,基类才能真正被复用,派生类也才能够在基类的基础上增加新的行为 LSP本质:在同一个继承体系中的对象应该有共同的行为特征 依赖倒置原则(DIP): 定义:高层模块不应依赖低层模块,二者都应该依赖于抽象 高层模块只应该包含重要的业务模型和策略选择,低层模块则是不同业务和策略的实现; 高层抽象不依赖高层和低层模块的具体实现,最多只依赖于低层的抽象; 低层抽象和实现也只依赖于高层抽象 ; 接口隔离原则(ISP): 定义:类间的依赖关系应该建立在最小的接口上。 多个和客户相关的接口要好于一个通用接口; 如果一个类有几个使用者,与其让这个类载入所有使用者需要使用的所有方法,还不如为每个使用者创建一个特定接口,并让该类分别实现这些接口; 接口隔离原则包含了四层重要含义: 接口尽量要小; 接口要高内聚; 定制服务; 接口设计是有限度的 迪米特原则(LoD): 定义:一个软件实体应当尽可能少的与其他实体发生相互作用。每一个软件单位对其他的单位都只有最少的知识,而且局限于那些与本单位密切相关的软件单位。 迪米特法则也叫做做最少知识原则(Least Knowledge Principle,简称LKP) 迪米特法则的初衷在于降低类之间的耦合。 第二章 (请重点复习本章) 策略模式 策略模式 定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。 标准类图 设计原则 “开-闭”原则(OCP) 单一职责原则(SRP) 里氏替换原则(LSP) 接口隔离原则(ISP) 设计实例及代码参考书22页 效果分析 优点:算法和使用算法的对象相互分离,客户程序可以在运行时动态选择算法,代码复用性好,便于修改和维护; 用组合替代继承,效果更好。若从Context直接生成子类,也可以实现对象的多种算法,但继承使子类和父类紧密耦合,使Context类难以理解、难以维护和难以扩展。策略模式采用组合方式,使Context和Strategy之间的依赖很小,更利于代码复用; 消除了冗长的条件语句序列,将不同的算法硬编码进一个类中,选择不同的算法必然要使用冗长的条件语句序列,采用策略模式将算法封装在一个个独立的Strategy类中消除了这些条件语句;算法的动态选择,St

文档评论(0)

153****9595 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档