uml模式设计

上传人:xzh****18 文档编号:56891661 上传时间:2018-10-16 格式:PPT 页数:45 大小:849.50KB
返回 下载 相关 举报
uml模式设计_第1页
第1页 / 共45页
uml模式设计_第2页
第2页 / 共45页
uml模式设计_第3页
第3页 / 共45页
uml模式设计_第4页
第4页 / 共45页
uml模式设计_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《uml模式设计》由会员分享,可在线阅读,更多相关《uml模式设计(45页珍藏版)》请在金锄头文库上搜索。

1、UML 对象模式设计,不学,后悔一辈子 学了,后悔两小时,什么是设计模式?,每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动。,模式名称 问题描述 解决方案 效果,模式的四个基本要素,19种主要模式,创建型:帮助一个系统如何创建、组合和表达它的对象 结构型:如何组合类和对象也获得更大的结构 行为型:不仅描述对象或类的模式,还描述它们之间的通讯模式,Facade(外观模式),意图: 简化子系统的接口,减少客户必须处理的对象数量,为子系统的一组接口提供一个一致的界面 适用性: 为复杂系统提供简单接口 程序之间存在很大的

2、依赖性,引入进行隔离 构建一个层次结构的子系统,Facade(外观模式结构),Adapter(适配器),意图: 将一个无法修改的现存类与一个特定接口相匹配 完全适用 不完全具备所有需要的功能 Vs. Facade 区别不在于后面隐藏的对象数量 Vs. Proxy 不改变接口 Vs. Bridge 结构相似(使用组合)目的不同,Adapter(适配器-结构),Bridge(桥接-结构),意图: 将概念抽象部分与他的实现部分分离,使它们都可以独立的变化 Vs. AbstractFactory 常联合使用,Bridge(桥接),Abstract Factory(抽象工厂),意图: 提供一个创建一系列

3、相关或相互依赖对象的接口,而无需指定它们具体的类 为特定客户提供特定系列的对象 在客户对象外部执行对象实例化 通常用Factory Method实现,有时也可以使用Prototype来实现 具体工厂往往是Singleton,Abstract Factory(抽象工厂-结构),Strategy(策略),意图: 定义一系列的算法,把它们一个一个封装起来,并且使它们可以互相替换; 使得算法可以独立于使用它们的客户而变化; Strategy对象经常是很好的轻量级对象,可使用Flyweight Vs. Decorator 核心算法vs.附加职责,Strategy(策略-结构),Decorator(装饰模

4、式),意图: 动态地给对象添加一些额外的附加职责 避免了生成大量子类的方法 Vs. Adapter 改变接口不改变职责 经常和Composite联用,Decorator(装饰模式-结构),Singleton(单件),意图: 保证一个类仅有一个实例,并提供一个访问它的全局访问点 不要使用全局变量 很多其他模式都会使用该模式 AbstractFactory Builder Prototype,Singleton(单件-结构),Observer(观察者模式),意图: 定义对象间的一对多关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新 Subject(目标)和observer(

5、观察者) 也叫publish-subscribe Vs. Mediator通过封装复杂的更新语义,,Observer(观察者-结构),Template Method(模版方法),意图: 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中 使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤 Vs. Strategy 改变算法的一部分vs.改变整个算法 Factory Method 常被 Template Method调用,Template Method(模版方法-结构),Factory Method(工厂方式),意图: 定义一个用于创建对象的接口,让子类决定实例化哪一个类 Vs.

6、Prototype 需要创建Creator的子类vs.需要Product子类的clone操作,Factory Method(工厂方式),Builder(生成器),意图: 将一个复杂对象的创建与它的表示分离,使得同样的构建过程可以创建不同的表示 Vs. AbstractFactory逐步构造一个复杂对象,产品最后返回vs.构造多个系列的产品对象,产品立即返回 Compsite通常是用Builder生成的,Builder(生成器-结构),Prototype(原型模式),意图: 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 要实例化的对象需动态指定 避免创建一个与产品类层次平行的工

7、厂类层次,Prototype(原型模式结构),Composite(组合模式),意图: 使得用户对单个对象和组合对象的使用具有一致性 经常用于Chain of Responsibility Decorator经常和Composite联用 Iterator可用于遍历Composite,Composite(组合模式结构),Flyweight(享元模式),意图: 运用共享技术有效地支持大量细粒度的对象 外部状态存储在上下文(整体类)或计算得出 内部状态存储在flyweight中,可共享 经常和Composite联用,Flyweight(享元模式-结构),Proxy(代理模式),为对象提供一种代理以控制

8、对这个对象的访问 远程代理 虚代理 保护代理 智能指引 Vs. Adapter 相同接口(子集)vs.不同接口,Proxy(代理模式结构),Chain of Responsibility(职责链模式),意图: 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系 将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止 常与Composite一起使用,Chain of Responsibility(职责链模式结构),Command(命令模式),意图: 提交请求时,不知道被请求的操作和请求的接收者 Composite可用来实现宏命令,Command(命令模式结构)

9、,Interpretor(解释器模式),意图: 对一类问题制定一种描述语言(文法),通过解释用这种文法定义的问题描述,生成一棵语法分析树,进而得到解决问题的算法 常使用Composite,Flyweight,Iterator,Interpretor(解释器模式),Iterator(迭代器模式),提供一种方法顺序访问一个聚合对象中各个元素,而无需暴露其内部表示 可以同时进行多种迭代,每个迭代器有指向聚合对象的指针,有各自的状态 更一般的多态迭代器无需知道聚合对象的类型 常用于遍历Compsite对象 多态迭代器需要FactoryMethod来实例化适当的迭代器子类,Iterator(迭代器模式),Mediator(中介者模式),用一个中介对象来封装一系列的对象交互 中介者使各对象不需显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互 Mediator(ChangeManager)和Colleague Vs. Facade 对象间的对象协议vs.子系统对外的单向协议 Colleague可使用Observer模式与Mediator通信,Mediator(中介者模式结构),The End! 谢谢!,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号