nbhkdz.com冰点文库

第六章设计模式引言.

时间:


第六章 设计模式引言 6.1 设计目标 ? 健壮性 ? 灵活性 ? 可重用性 6.2 设计原则 ? 面向接口编程的原则 –面向接口编程,而不是面向实现编程。 ? 可变性封装的原则 ? 开-闭原则 ? 里氏替换原则 ? 组合/聚合复用原则 –尽量使用组合/聚合、尽量不使用继承 设计原则(续) ? 接口隔离原则 – 避免接口污染; ? 依赖倒转原则 – 高层模块不应该依赖于低层模块。二 者都应该依赖于抽象。 – 抽象不应该依赖于细节。细节应该依 赖于抽象。 6.3 关于模式 模式描述了一个在我们的环境中不断出现的 问题,然后描述了该问题的解决方案的核心。 通过这种方式,你可以无数次地使用那些已 有的解决方案,无需再重复相同的工作。 ———《建筑的永恒之道》 Christopher Alexander 关于模式(续) – 模式其实就是解决某一类问题的方法论。 – 把解决某类问题的方法总结归纳到理论高度, 那就是模式。 – 模式对问题的描述以及对问题的解答应具有 高度的抽象性和代表性。 – 模式是对现实生活某类现象的共同特质的高 度抽象,描述了事务或者现象的规律,这种 规律以及解决方法对于类似的现象同样有用。 软件的设计模式 – 指在软件设计和开发过程中,不断总结出来 的,反应了某一类设计问题的解决方案。 – 模式是一种指导,在一个良好的指导下,有 助于你完成任务,有助于你作出一个优良的 设计方案,达到事半功倍的效果。而且会得 到解决问题的最佳办法。 – 设计模式使人们可以更加简单方便地复用成 功的设计和体系结构。 几个概念的区分 ? ? ? ? 模式: 设计模式: 框架: 架构: GoF(Gang of Four,四人帮) – Erich Gamma:在苏黎世大学获得计算机科学博士学位, 曾供职于瑞士联邦银行、Taligent、OTI公司。现在是 Eclipse项目的主要技术负责人之一。 – Richard Helm:在墨尔本大学获得计算机科学博士学 位,曾在IBM T.J.Watson担任研究员。现在IBM咨询集团 供职。 – Ralph Johnson:在康内尔大学获得计算机科学博士 学位,目前是伊利诺大学教授,在模式、重构等领域均有很 高造诣。 – John Vlissides:在斯坦福大学获得计算机科学 博士学位,目前是IBM T.J.Watson研究中心的研究员。 6.4 为什么我们要使用设计模式? ? 设计模式帮助你从别人的成功经验而不是你 自己的失败那里学到更多东西; ------- Mark Johnson ? 设计模式提供了一种共享经验的方式,可以 使团体受益和避免不断的重复发明。 6.5 模式的四个基本要素 ? 模式名称(pattern name) 一个助记名,它用 一两个词来描述模式的问题、解决方案和效果。 ? 命名一个新的模式增加了我们的设计词汇。设计模式 允许我们在较高的抽象层次上进行设计。基于一个模 式词汇表,我们自己以及同事之间就可以讨论模式并 在编写文档时使用它们。 ? 模式名可以帮助我们思考,便于我们与其他人交流设 计思想及设计结果。 ? 找到恰当的模式名也是我们设计模式编目工作的难点 之一。 模式的四个基本要素(续) ? 问题(problem) 描述了应该在何时使用模 式。 它解释了设计问题和问题存在的前因后果,它可 能描述了特定的设计问题,如怎样用对象表示 算法等。 也可能描述了导致不灵活设计的类或对象结构。 有时候,问题部分会包括使用模式必须满足的一 系

赞助商链接