版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. P
6、rototype 需要创建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(中介者模式),用一个中介对象来封装一系列的对象交互 中介者使各对象不需显式地相互引用,从而使其耦合松散,而且可以
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年安徽工商职业学院单招综合素质考试题库附答案详解(a卷)
- 2026年安徽工商职业学院单招职业倾向性考试题库及答案详解(名校卷)
- 2026年安徽工商职业学院单招职业技能测试题库带答案详解(b卷)
- 2026年安徽工贸职业技术学院单招综合素质考试题库参考答案详解
- 2026年安徽工贸职业技术学院单招职业倾向性考试题库及答案详解(真题汇编)
- 2026年安徽工贸职业技术学院单招职业技能测试题库含答案详解(新)
- 2026年安徽工贸职业技术学院单招职业技能考试题库附参考答案详解(b卷)
- 2026年安徽工贸职业技术学院单招职业适应性测试题库附答案详解(突破训练)
- 2026年安徽广播影视职业技术学院单招综合素质考试题库及答案详解(夺冠系列)
- 2026年安徽广播影视职业技术学院单招职业倾向性测试题库及一套参考答案详解
- 2025年江苏省高职单招《职测》高频必练考试题(附答案)
- 消防救援中的个人安全防护
- 对外投资合作国别(地区)指南 -肯尼亚-20250106-00616
- 光伏工程电缆敷设施工方案
- 开工第一课安全培训内容
- 贵州省贵阳市(2024年-2025年小学六年级语文)部编版小升初真题(上学期)试卷及答案
- 《乳胶漆的基础知识》课件
- 防空雷达课件教学课件
- 公路建设表土剥离管理方案
- 2024年可行性研究报告投资估算及财务分析全套计算表格(含附表-带只更改标红部分-操作简单)
- 《建筑工程计量与计价》中职全套教学课件
评论
0/150
提交评论