软件工程面向对象的设计模式.pdf
《软件工程面向对象的设计模式.pdf》由会员分享,可在线阅读,更多相关《软件工程面向对象的设计模式.pdf(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、面向对象的设计模式北京化工大学计算机系袁国栋?1.什么是设计模式??2.设计模式的描述和分类?3.设计模式如何解决设计问题?4.几种常用的设计模式1.什么是设计模式??美国C.亚历山大亚历山大?每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动?面向对象程序设计的经验总结1.什么是设计模式?(cont.)?设计模式四要素?模式名称(pattern name)?助记名,用一两个词来描述模式的问题、解决方案和效果?问题(problem)?应该在何时使用模式?解决方案(solution)?描述了设计的组成成分,各组成成分间
2、的相互关系及各自的职责和协作方式(模板、抽象意义)?效果(consequences)?描述了模式应用的效果及使用模式应权衡的问题2.设计模式的描述和分类?描述设计模式?模式名和别名?意图?设计模式是做什么的?基本原理和意图是什么??它解决的是什么样的特定设计问题?动机?适用性?结构?采用基于对象建模技术(OMT)对模式中的类进行图形描述?参与者?相关模式2.设计模式描述和分类(cont.)?根据目的不同,模式分为三类创建型、结构型和行为型3.设计模式如何解决设计问题?寻找合适的对象?决定对象的粒度?对象的大小和数目?指定对象接口?该对象所能接受的全部请求的集合?确定接口的主要组成部分?经接口发
3、送的数据类型?接口中不应包括的内容?描述对象的实现,etc.4.几种设计模式?Singleton模式?Iterator模式?observer模式4.1 Singleton模式?意图?保证一个类仅有一个实例,并提供一个访问它的全局访问点?动机?对于某些类而言,整个系统中必须只有一个实例?适用性?当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时?当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。?结构?参与者?Singleton?实现?保证一个唯一的实例?考虑使用静态成员函数+lazy initialize?使用global/static 对象时
4、可能存在的问题?创建Singleton类的子类4.2 Iterator模式?意图?提供一种方法顺序访问一个聚合对象中的各个元素,而又需暴露该对象的内部表示?别名?游标 cursor?动机?聚合对象在不暴露内部结构的前提下,能被访问它的元素、遍历等操作(List)?不希望类的接口列表中出现大量的遍历操作+Count()+Append(in Element)+Remove(in Element)List+First()+Next()+IsDone()+CurrentItem()#indexListIterator?关键思想?将列表的访问和遍历从列表对象中分离出来并放入一个Iterator(迭代器)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 面向 对象 设计 模式
限制150内