1 / 12
文档名称:

软件设计模式珍贵笔记.pdf

格式:pdf   大小:241KB   页数:12页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

软件设计模式珍贵笔记.pdf

上传人:文库旗舰店 2022/6/9 文件大小:241 KB

下载得到文件列表

软件设计模式珍贵笔记.pdf

相关文档

文档介绍

文档介绍:: .

的软件设计实例,说明其中各角色的作用。

实例:计算机和立体组合音响这样的设备经常被组装成一部分整
体层次结构或者是容器层次结构,例如:底盘可以包含驱动装置和平
面板,总线含有多个插件,机柜包括底盘、总线等。这样结构很自然
的用 composite 模式进行模拟。
Equipment 类为在部分——整体层次结构中的所有设备定义一个
接口。Equipment 声明一些操作返回一个设备的属性,例如它的能是消耗和价格。子类为指定的设备实现了这些操作,Equipment 还声明
了一个 Create Iterator 操作,该操作为访问它的零件返回一个
Iterator ,这个操作的缺省实现返回一上 NullIterator,它在空集上
迭代。
Composite Equipment是包含其它设备的基类,它也是 Equipment
的子类。

(Facade)和中介者模式(Mediator)的基本思
想,两者的差异何在?
答:门面模式(facade)又称外观模式。基本思想:为子系统中
的一组接口提供一个一致的界面, Facade 模式定义了一个高层接口,
这个接口使得这一子系统更加容易使用。
“中介者模式”基本思想:Mediator Pattern 中文译为“中介者
模式”、“调停者模式”。调停者模式的定义是:用一个调停对象来封装
一系列的对象交互。调停者使各对象不需要显式地相互引用,从而使
其耦合松散,而且可以独立地改变它们之间的交互。简单点来说,将
原来两个直接引用或者依赖的对象拆开,在中间加入一个“调停”对
象,使得两头的对象分别和“调停”对象引用或者依赖。
两者的差异: 从目的上看,调停者模式与门面模式有些相似。 但
是门面模式是介于客户程序与子系统之间的,而调停者模式是介于子
系统与子系统之间的。这也注定了它们有很大的区别:门面模式是将
原有的复杂逻辑提取到一个统一的接口,简化客户对逻辑的使用。它
是被客户所感知的,而原有的复杂逻辑则被隐藏了起来。而调停者模式的加入并没有改变客户原有的使用****惯,它是隐藏在原有逻辑后面
的,使得代码逻辑更加清晰可用。

,如何实现当目标对象发生变化时
多个观察者对象的同步更新?画出他们之间的协作图。
(1)Observer(观察者)基本思想:对象间的一种一对多的依赖
关系。当一个对象的状态发生变化时,所有依赖于它的对象都得到通
知并自动更新。
(2)协作:当 Concrete Subject 发生任何可能导到其参观者与
其本身状态不一致的改变时,它将通知它的各个观察者。在得到一个
具体的目标改变通知后,Concrete Object 对象可向目标对象查询信
息,Concrete Object 使用这个些信息以使它的状态与目标对象的状
态一致。
(3)协作图:


State 模式的例子。与不使用该模式相比,有哪些优点?
举例:抽象状态类定义了一个抽象方法“写程序”

与不使用该模式相比优点:
State 模式将特定的状态相关的行为封装在一个类中,由于所有状态
相关的代码都存在于某个 concrete state中,所以通过定义新的子类
可以很容易的增加新的状态和转换。

?说明你的理
由。
策略模式(strategy) 属于对象行为型模式,主要定义一系
列的算法,把这些算法一个个封装成拥有共同接口的单独的类,并使
他们之间互换,客户端调用他们的时候互不影响。算法使用和算法分
离,即将变化的具体算法封装起来,降低了代码的耦合度,算法提取
起来,使算法得到重用。
中介者模式(mediator) 用一个调停对象来封装一系列