分享
 
 
 

Null Object 设计模式

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

CSDN - 文档中心 - 其他

标题

Null Object 设计模式 guoyan19811021(翻译)

关键字

NullObject 设计模式

出处

http://www.cs.oberlin.edu/~jwalker/nullObjPattern/

Null Object Pattern

意图

提供一个对象[如一个代理]给给定的类型,用以代替这个对象为空的情况。 Null Object提供聪明的、什么也不做的行为,隐藏来自它的合作者的细节。

别名

Stub, Active Nothing

动机

有时,一个类需要它的一个合作者不需要做任何事。然而,类期望对待一个[什么也不做]的合作者与它对待实际上的对象提供的行为具有相同的方法。

举例来说,考虑一个显示球以移动有关荧屏的问题而且有特别的颜色效果。 这可以由创造一个球达成分类来显示球和使用一个Strategy pattern [GHJV95,第 315 页] 控制球的提议和另外的一个策略式样控制球的颜色来实现。然而, 和你开始想要产生是可能确定的最简单的策略每件事物正在工作。

现在,最简单的策略不是策略。 那就是do nothing, ,不移动而且不改变颜色。 然而,Strategy pattern 需要球有实现strategy 的接口的对象。 这是Null Object 模式变成有用的地方。 只需要简单实现不移动球的NullMovementStrategy类 和不改变球的颜色的NullColorStrategy 类。 这两个都可以实现本质上没有代码。 所有的方法在这些类中只做 "nothing" 。它们是Null Object 模式的完美例子。

Null Object 模式的关键是一个为这个类型的所有对象定义接口的抽象类。 Null Object 通过这个抽象类的子类来实现。因此它遵照抽象类的接口, 它可以在需要这个类的任何地方型来使用。当作比拟为使用不实际上实现抽象的接口特别的 "null"的值和一定不变地被检查为由于特别的代码在使用抽象的接口任何的对象中。

一般会认为 Null Objects 是过于简单和 "愚蠢"的 ,但是在事实上一个 Null Objects 在没有任何其他的对象互相影响的情况下,总是很确切的知道需要去做什么。 因此,事实上它是最"智能"的。

适用性

在以下情况下使用Null Object模式

; 一个对象需要一个合作者。 Null Object 将不被引入这个合作体系--它利用已经存在的合作者。

; 一些合作者的实例应该什么也不做。

结 构

参与者

Client

需要一个合作者

AbstractObject

声明Client合作者的接口

适当的在所有类中实现接口默认行为

RealObject

定义一个AbstractObject的子类,它的实例实现Client预期的有用的行为

定义AbstractObject 的一个具体的子类提供客户预期的有用行为

NullObject

提供一个与 AbstractObject 一致的接口,使得这个空对象可以替代真实的对象

使接口中的方法 “do nothing”

当不止一种方法“do nothing”时,就需要相同数量的空对象

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有