资源预览内容
第1页 / 共20页
第2页 / 共20页
第3页 / 共20页
第4页 / 共20页
第5页 / 共20页
第6页 / 共20页
第7页 / 共20页
第8页 / 共20页
第9页 / 共20页
第10页 / 共20页
亲,该文档总共20页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
浪潮软件技术培训,Design Pattern设计模式,-浪潮软件 贾德星,设计模式概述,面向对象设计中的问题,设计面向对象的软件很难,设计可复用的面向对象软件更难 你需要寻找合适的对象、确定对象粒度、确定对象接口、确定对象的实现以及对象之间的关系 你的设计必须能解决现在的问题,并且要有足够的通用性来解决未来的问题和需求 你要避免重新设计或尽量减少到最小 新手需要花比学习传统结构设计更多的时间来学习好的面向对象的设计,面向对象设计中的问题(cont),有经验的面向对象设计者常常重复使用那些过去用过的解决方案 新设计以原有经验为基础,使设计者可重复使用成功的设计 我们可以将面向对象软件的设计经验纪录成“设计模式”,设计模式的概念,设计模式概念的提出 设计模式最早是一位叫做Alexander的建筑师提出的 每个模式描述了一个在我们身边一再发生的问题,它告诉你这个问题的解的关键,以使你可以成千上万次地利用这个解,而不用再次去解它。 面向对象设计模式最初出现于70年代末,在Smalltalk中引入 Erich Gamma在其博士论文中做了一些开创性的工作,进一步推动了设计模式的发展 Design Patterns - Elements of Reusable Object-Oriented Software, E.Gamma, R. Helm, R. Johnson, and J. Vlissides,1995, Addison-Wesley.,设计模式的概念(cont),设计模式简单地理解,是一些设计面向对象的软件开发的经验总结 普遍认可的定义:模式是指从某个具体的形式中得到的一种抽象,在特殊的非任意性的环境中,该形式不断地重复出现。 模式的概念是“随设计中要解决的问题的变化而变化的”,设计模式的概念(cont),一个好的模式必须做到: 它解决一个问题:从模式可以得到解,而不仅仅是抽象的原则或策略 它是一个被证明了的概念:模式通过一个纪录得到解,而不是通过理论或推测 解不是显然的:许多解决问题的方法是从基本的原理得到解 它描述了一种关系:模式给出更深层的系统结构和机理 模式有重要的人为因素:,设计模式的组成,模式名称 描述一个设计问题、解法和后果 问题 何时使用设计模式,解释问题及其背景 解决方案 描述设计的基本要素 后果 描述应用设计模式后的结果和权衡,设计模式的描述,模式名称和分类:简洁地给出模式的本质 目的:解释本设计模式的用处、基本原理和目的、它针对的是什么特殊的设计问题 动机:描述一个设计问题的方案以及模式中类和对象是如何解决这个问题 应用:在什么情况下应用本设计模式 结构:用对象模式技术(OMT)对本模式的图像表示 成分:组成本设计模式的类和对象及它们的职责 合作:成分间如何合作实现它们的任务 后果:该模式如何支持它的对象;在使用是如何权衡、结果如何 实现:实现本模式时要注意哪些缺陷、技术,是否与编程语言有关 例程代码 已知应用 相关模式,三种使用设计模式的软件,应用系统 工具包 框架 框架是指在一个特定的领域中的一组相互协作的类,它定义了应用的框架 框架更强调设计复用而不仅是代码复用 有了设计模式的框架更容易理解并能达到更高水平的复用,模式和框架的比较,设计模式比框架更加抽象 设计模式是比框架小的结构元素 设计模式比框架有更广泛的意义,设计模式方法的分类,按应用目的分类 可复用部件的设计模式 可复用框架的设计模式 按符号形式分类 非形式的文本符号 形式的文本符号 图形符号,设计模式的作用,发现合适的对象 设计模式可以帮助你识别不明显的对象 如:表达处理或算法的对象 确定对象的粒度,如: Facade 模式描述如何用对象代表一个子系统 Flyweight 模式描述如何以最好的粒度支持大数量的对象 其他模式则以特定的方法将一个对象分解为更小的对象,设计模式的作用(cont),确定对象接口 设计模式可以识别关键元素和由接口取得的数据的类型,来帮你定义接口 设计模式也规定了接口之间的关系 确定对象实现 类与接口的继承 类定义了对象如何实现,类型则只涉及它的接口 类继承根据另一个对象的实现定义了一个对象的实现,接口继承描述何时可用一个对象替换另一个 根据接口而非根据执行过程来编程,设计模式的作用(cont),使复用机制工作 继承和组合的关系 支持对象复合甚于支持类继承 代理 继承和参数化类型 适应变化的设计,如何选择设计模式,考虑设计模式是如何解决设计问题的 查看每个设计模式的目的 学习设计模式是如何关联的 研究相似用途的模式 考虑你的设计中什么是变化的部分,如何使用设计模式,阅读一遍设计模式 尤其是“适用性”和结果部分 再研究结构、关系和协作部分 查看样例代码 根据应用程序上下文为模式参与者命名 定义类 声明接口、定义继承关系、定义代表数据和引用的实例变量 为模式中的操作定义应用特定的名字 实现操作来完成模式里的职责和协作,设计模式目录,Gamma提出的23种设计模式 按其目标分为: 创建性模式 结构性模式 行为性模式,设计模式目录,谢 谢!,www.loushang.com,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号