预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共55页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

2010年12月23日8时14分 设计模式的思想根源是基本原则 的宏观运用,本质上是没有任何模 式的 发现模式的人永远是大师,而死守 模式的人,最对只能是一个工匠. 2 设计模式DesignPattern设计模式:起源 面向对象研究的新领域起源 20世纪90年代,面向对象方法与技术在ChristopherAlexander 国内软件业界十分火爆,人们热衷于谈当代著名建筑大师 论“对象”并引以为荣。十多年来,人加州大学伯克利分校建筑学教授、 们发表、出版了无数的文章和书籍。现环境结构研究所所长、美国艺术 在,该写的似乎都写完了,没有新花样与科学院院士 玩了,真是一片无聊在建筑、室内、计算机、家具设 计甚至哲学方面都卓有建树 设计模式(DesignPattern)及时问世,著作:《APatternLanguage》、 面向对象爱好者们终于有了新的追求《TheTimelessWayofBuilding》 34 设计模式:起源设计模式:起源 Gof(GangOfFour,“四人帮”) ErichGamma,RichardHelm,Ralph Johnson,JohnVlissides 1995年出版了《DesignPatterns: ElementsofReusableObject-Oriented Software》 该书确立了设计模式这个术语,创导了 一种新的面向对象设计思潮。从此,参 与设计模式研究的人数爆炸性地增长 56 ©2003-2004MicrosoftCorporation.Allrightsreserved. Thispresentationisforinformationalpurposesonly.Microsoftmakesnowarranties,expressorimplied,inthis summary.1 2010年12月23日8时14分 设计模式设计模式:研究现状 什么叫模式?设计模式的研究现状 “每一个模式描述了在我们周围不断重pattern与Java、C# 复发生的问题,以及该问题的解决方案pattern与组件技术(如CORBA) 的核心。这样,你就能一次又一次地使 pattern与系统结构 用该解决方案而不必重复劳动” pattern与泛型编程(generic 尽管软件技术发展非常快,但是仍然有 programming)相结合 非常多的设计模式可以让我们套用 其他(例如UML等) 设计模式可以帮助人们简便地复用以前 成功的设计方案,提高工作效率 78 模式的分类(gof提出的23个)Bridge(桥梁)模式 创建型结构型行为型案例 Interpreter 类FactoryMethodAdapter(类)有一个叫做HuntBird的游戏,里面需要 TemplateMethod表示各种各样的鸟类 ChainofResponsibility Adapter(对象)Command BridgeIterator AbstractFactory CompositeMediator 对Builder DecoratorMemento 象Prototype FacadeObserver Singleton FlyweightState ProxyStrategy Visitor 910 Bridge(桥梁)模式Bridge(桥梁)模式 最初的设计需求变化:鸟类要会飞 1112 ©2003-2004MicrosoftCorporation.Allrightsreserved. Thispresentationisforinformationalpurposesonly.Microsoftmakesnowarranties,expressorimplied,inthis summary.2 2010年12月23日8时14分 Bridge(桥梁)模式Bridge(桥梁)模式 如果增加一种鸟类“企鹅”呢?改进方法:对“飞”使用多态 1314 Bridge(桥梁)模式Bridge(桥梁)模式 改进方法:再次使用继承如果增加“游泳”行为呢? 1516 Bridge(桥梁)模式设计原则:组合优先 继承只会使得问题越来越复杂继承复用的优点 可以很容易的修改或扩展父类的实现 设计原则1:组合优先 优先使用组合,而不是继承 继承是面向对象的基本法宝啊?? OO=类+对象+继承+消息通信 1718 ©2003-2004MicrosoftCorporation.Allrightsreserved. Thispresentationisforinformationalpurposesonly.Microsoftmakesnowarranties,ex