2012-2013 第二学期 11本 UML 第十四章 UML模式设计课件.ppt

2012-2013 第二学期 11本 UML 第十四章 UML模式设计课件.ppt

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

UML 面向对象技术教程;一.设计模式;二.为什么要使用设计模式?(Design Pattern); 三. 设计模式分类。; 三. 设计模式分类。; 四. 我们如何看待设计模式?;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界面的滚动条、按钮、和文本框的风格均不一样! 如何表示和研究上述情况,这就是“抽象工厂”设计模式的基本出发点。见下图: ;1)抽象工厂声明创建抽象产品的操作接口 createProductA() 和 createProductB() 2)具体工厂类(包括 concreteFactory1, concreteFactory2)实现创建具体产品对象的操作; ;3)抽象产品类(Abst-Prod A 和 Abst-Prod B)各声明一种产品对象的接口; 4)具体产品类(Prod A1, Prod B1,Prod A2, Prod B2) 将定义被具体工厂类创建的,实现抽象产品类接口; 5)客户类(Client)仅使用抽象工厂类和抽象产品类声明的接口。 优点:1)隔离了具体类.使产品族间的转换容易进行。 2)容易实现一次应用只使用同一系统中的产品对 象。 问题:扩展工厂容易,但扩展新产品种类则很难。;六、在Rose中使用设计模式;具体在Rose 2003 模式设计;添加新的关系类Visitor及Element类;完成设置后形成的模式类元:;将模式生成的几个类拖至类图中形成类图:;生成代码示意图:

文档评论(0)

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

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

1亿VIP精品文档

相关文档