UML模式设计.ppt

UML 对象模式设计 什么是设计模式? 每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动。 模式的四个基本要素 模式名称 问题描述 解决方案 效果 19种主要模式 创建型:帮助一个系统如何创建、组合和表达它的对象 结构型:如何组合类和对象也获得更大的结构 行为型:不仅描述对象或类的模式,还描述它们之间的通讯模式 Facade(外观模式) 意图: 简化子系统的接口,减少客户必须处理的对象数量,为子系统的一组接口提供一个一致的界面 适用性: 为复杂系统提供简单接口 程序之间存在很大的依赖性,引入进行隔离 构建一个层次结构的子系统 Facade(外观模式—结构) Adapter(适配器) 意图: 将一个无法修改的现存类与一个特定接口相匹配 完全适用 不完全具备所有需要的功能 Vs. Facade 区别不在于后面隐藏的对象数量 Vs. Proxy 不改变接口 Vs. Bridge 结构相似(使用组合)目的不同 Adapter(适配器-结构) Bridge(桥接-结构) 意图: 将概念抽象部分与他的实现部分分离,使它们都可以独立的变化 Vs. AbstractFactory 常联合使用 Bridge(桥接) Abstract Factory(抽象工厂) 意图: 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类 为特定客户提供特定系列的对象 在客户对象外部执行对象实例化 通常用Factory Method实现,有时也可以使用Prototype来实现 具体工厂往往是Singleton Abstract Factory(抽象工厂-结构) Strategy(策略) 意图: 定义一系列的算法,把它们一个一个封装起来,并且使它们可以互相替换; 使得算法可以独立于使用它们的客户而变化; Strategy对象经常是很好的轻量级对象,可使用Flyweight Vs. Decorator 核心算法vs.附加职责 Strategy(策略-结构) Decorator(装饰模式) 意图: 动态地给对象添加一些额外的附加职责 避免了生成大量子类的方法 Vs. Adapter 改变接口不改变职责 经常和Composite联用 Decorator(装饰模式-结构) Singleton(单件) 意图: 保证一个类仅有一个实例,并提供一个访问它的全局访问点 不要使用全局变量 很多其他模式都会使用该模式 AbstractFactory Builder Prototype Singleton(单件-结构) Observer(观察者模式) 意图: 定义对象间的一对多关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新 Subject(目标)和observer(观察者) 也叫publish-subscribe Vs. Mediator通过封装复杂的更新语义, Observer(观察者-结构) Template Method(模版方法) 意图: 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中 使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤 Vs. Strategy 改变算法的一部分vs.改变整个算法 Factory Method 常被 Template Method调用 Template Method(模版方法-结构) Factory Method(工厂方式) 意图: 定义一个用于创建对象的接口,让子类决定实例化哪一个类 Vs. Prototype 需要创建Creator的子类vs.需要Product子类的clone操作 Factory Method(工厂方式) Builder(生成器) 意图: 将一个复杂对象的创建与它的表示分离,使得同样的构建过程可以创建不同的表示 Vs. AbstractFactory逐步构造一个复杂对象,产品最后返回vs.构造多个系列的产品对象,产品立即返回 Compsite通常是用Builder生成的 Builder(生成器-结构) Prototype(原型模式) 意图: 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 要实例化的对象需动态指定 避免创建一个与产品类层次平行的工厂类层次 Prototype(原型模式—结构) Composite(组合模式) 意图: 使得用户对单个对象和组合对象的使用具有一致性 经常用于Chain of Responsibility Decorator经常和Composite联用 Iterator可用于遍历Composite Composite(组合模式—结构) Flyweight(享元模式) 意图: 运用共享技术有效地支持大量细粒度的对象 外部状态存储在上下文(整体类

文档评论(0)

1亿VIP精品文档

相关文档