[软件工程5-3.pptVIP

  1. 1、本文档共52页,可阅读全部内容。
  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文档。上传文档
查看更多
[软件工程5-3

设计模式(Design Patterns) 模式:一种趋于固定的结构方式 例如:悲剧-《哈姆雷特》、言情-台湾琼遥、武打动作片-成龙、惊险片-美国大片等 软件设计模式:是软件设计中总结出来的、广泛应用和成熟的结构和结构关系 成功的模式,能针对特定问题,采用成熟和成功的方法,比重新设计要好的多 建筑师C.Alexander给出的经典定义是:每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你可以无数次地使用那些已有的解决方案,无需在重复相同的工作。 与艺术不同,工程领域,对经多年的磨练、完善和提高而获得的成功模式,愿意加以反复使用,模式为重用提供了基础 程序模块接口接口 好处:灵活 缺点:控制复杂 面向对象的设计模式 流程表——也是一种设计模式:表驱动模式 什么叫“表驱动”? 直接调用与间接调用 间接调用的好处:一种灵活性 控制与执行的隔离 变化体现在“表”上 可以更进一步在表上做文章:数据结构 系统的控制最后取决与“表”的内容和表的表现形式 所以,系统被表所驱动 这是最简单的控制方式 面向对象的设计模式 设计模式是系统架构的基础,为普通面向对象设计,提供了解决方案 模式以一组交互类的形式出现,用户根据需要定制这些交互类以形成专门的设计 设计模式可以使人们可以更加方便地重用成功的设计方案,提高软件的灵活性和可复用性,也提高了设计文档管理的有效性和可维护性 设计模式是一种实践的总结,是OO最直接的表现。 设计模式常用的有23种 面向对象的设计模式 面向对象设计的模式(最主要的23个,及一些补充) 构造型模式:类和对象创建过程中的不同模式 抽象工厂、构造器、工厂、原型、单件 整体-部分、计数指针、视图句柄 结构型模式:不同类和对象之间的不同静态结构 适配器、桥接、组合、装饰、外观、享元、代理 主从、模型-视图-控制、表示-抽象-控制 行为型模式:类和对象的不同职责与行为关系 责任链、命令、解释器、迭代器、中介者、备忘录、观察者、状态、策略、模板方法、访问者 生存周期、发送-接收者、客户-分遣-服务器、出版-订购者、反射 如何描述一个模式 模式的四个基本要素 模式名:pattern name 用一个词来简单表示模式的问题、解决方案和效果。恰当和贴切的模式名,可以使我们对模式的作用“一目了然” 问题:Problem 描述应该在何时使用模式,它针对哪些特定的设计问题、问题的前因和后果,以及使用模式的先决条件。 解决方案:Solution 是模式本体,模式是如何构成的、它们之间的相互关系和责任。模式是一个问题类的解决方案的抽象模板,因此,它不描述具体的设计或实现,只提供设计问题的抽象思路。 效果:Consequences 描述模式的应用效果和使用模式应权衡的问题。这是在设计阶段进行设计选择时,不可避免要考虑的问题。 好处和代价:时间和空间、复用和灵活性、可扩展和可移植性等等的平衡 3.2 对象创建型模式:creational patterns 对象实现: 根据系统的抽象分析,我们设计了类以及类的内部属性、数据、可完成的操作和接口 然后,我们可以通过实例化类来创建对象,此对象是类的实例,所谓实例化,就是为对象具体分配数据存储空间,并将操作与这些数据联系起来 同一个类可以根据需要被实例化为不同的对象(多态性) 新的类可以通过已存在的类的继承来定义,子类继承了父类时,子类也包含了父类的数据和操作,子类的实例对象包含了子类和父类定义的数据,能完成子类和父类定义的操作 子类还可以通过重定义的方式,扩展父类的定义 继承是类的复用的主要方法,因为父类的特性对子类是透明可视的,因此称为“白箱”复用 另一种复用方法是对象组合,称为“黑箱”复用。 对象创建型模式:creational patterns 对象实例化过程概念与实现的补充: 对象创建型模式:creational patterns 创建型模式: 创建型模式抽象了实例化的过程,这样,使得系统与具体对象的创建、组合和表示独立开来 有二种创建模式:类创建和对象创建 类创建模式使用继承改变被实例化的类 对象创建模式将实例化委托给另一个对象 创建型模式把系统使用了哪些具体的类的信息封装了起来 模式隐藏了这些类的实例是如何被创建和放在一起的 整个系统关于这些对象所知道的仅是由抽象类所定义的接口 因此,模式使得类和对象什么被创建、谁创建、怎么被创建、何时创建等是隐蔽和无关的。这样,使你可以用结构和功能差别很大的“产品”对象,来配置新的系统 对象创建型模式:creational patt

文档评论(0)

tiantiande + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档