- 第二学期 11本 UL 第十四章 UML模式设计.ppt

- 第二学期 11本 UL 第十四章 UML模式设计.ppt

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

UML 面向对象技术教程 二.为什么要使用设计模式?(Design Pattern) 1.运用模式简化并加快设计。 从设计模式入手可不必从底层做起,简化开发过程。 2.成熟的模式更便于沟通。 运用设计模式可更准确地描述问题,用一致的解决方案更易于理解。 3.成熟的模式更有利于降低开发风险。 设计模式是经过多次使用和验证的,所以可降低失败的可能性。 4.更便于转移到面向对象技术。 使用设计模式有助于让开发人员使用新技术,实现技术迁移。 三. 设计模式分类。 Gof在其著作中共总结出了23个设计模式。 1.按目的划分设计模式: ◇创建型模式(5);抽象了创建对象的过程。 ◇结构型模式(8);如何组合类和对象获得最大结构。 ◇行为型模式(10) 描述算法和对象之间职责的分配。 2.按范围划分设计模式: ◇类设计模式(3); ◇对象设计模式(20) 具体的详细分类见下图 三. 设计模式分类。 Gof总结出的23个具体的设计模式表: 四. 我们如何看待设计模式? 1.模式是否可以提高生产力?--结论是:“因人而异!” ● 模式只有恰到好处的使用才能发挥威力。 在创造新事物的过程中设计模式是无法取代人的位置。但它可以使人(尤其是缺乏经验但有能力的人)获得设计能力。 ● 模式相当于工具箱中的一项工具。 2.模式是否可以生成整个系统?--结论是:“否!” ● 模式的生成能力是指它具有可传授性,参考已有的设计模式对于设计体系结构是很有用的。 ● 模式可以覆盖软件体系结构的某些方面,但不可能覆盖所有的方面,应发挥开发自己的主观创造性来填补其他的空白。 四. 我们如何看待设计模式?(续) 3.模式是记述(记载)某些专家的成功经验。 模式可以针对OO对象(或非面向对象)来设计和实现。固定格式的模式不可能适应所有的需求,比较有普遍意义的是模式的概念,它是记载并传达专家经验的工具。那么怎样使用设计模式? GoF给出的方法:(可以提供参考的方法) 1)大致浏览一遍模式; 2)研究结构部分; 3)观看代码示例部分; 4)选择模式,使它在应用上下文中有意义; 5)定义类; 6)定义操作。 五. 设计模式示例 把上图加以改进,成为 下图“手柄-本体”模式。 五. 设计模式示例(续) 2.Facade设计模式(见P156图14.1) 将类之间的复杂关系简化成为对应与“接口”的实现关系。 五. 设计模式示例(续二) 上例中体现了Facade设计模式的低耦合性: 左图的Client类:Q、R、S和子系统之间的接口多,因而耦合性很强。右图中用了Facade设计模式后每个Client类通过调用统一的Facade类的方法来与子系统通信,很少直接存取子系统的对象。因此大大降低了它们之间的耦合度。 使用Facade设计模式的具体实例请参阅P157-158, Facade设计模式经常使用在数据库的操作上,实现接口类的操作,大大地降低了交互访问,比如在JDBC中就是通过这样的设计模式对接口进行的实现。 Jdbc传统方法和Fcacde实现方式的区别: 装载数据库驱动-》Connection连接数据库-》用对象获取数据库的库表这样几个步骤。而Facade则直接通过Database和ResultSet接口来实现。 五. 设计模式示例(续三) 3.“工厂方法”(factory Method)设计模式; 五. 设计模式示例(续四) 注意: 把 Creator和Product定义成抽象类,把 Concrete Creator 和 Concrete Product作为子类继承上述抽象类也是可以的,但版型和关联符号是不同的。 优点: 1)对比来讲,直接创建对象应该说来的更灵活; 2)更加易于修改和维护; 3)容易扩展。 五. 设计模式示例(续五) 4.“抽象工厂”(Abstract Factory)的设计模式 每个工厂制造出一系列产品,各工厂制造的产品种类是一样的,只是产品外观和行为(功能)方面不同。比如图形界面上都有滚动条(Scroll Bar)、按钮(Button)和文本框(Text Box)。但是,在Unix上的Motify界面的滚动条、按钮、和文本框和在MS Windows及在IBM OS/2界面的滚动条、按钮、和文本框的风格均不一样! 如何表示和研究上述情况,这就是“抽象工厂”设计模式的基本出发点。见下图: 五. 设计模式示例(续六) 五. 设计模式示例(续七) 3)抽象产品类(Abst-Prod A 和 Abst-Prod B)各声明一种产品对象的接口; 4)具体产品类(Prod A1,

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档