码迷,mamicode.com
首页 > 其他好文 > 详细

空对象模式

时间:2016-06-27 19:36:26      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:

 
空对象模式
    在空对象模式中,我们创建一个指定各种要执行的操作的抽象类和扩展该类的实体类,还创建一个未对该类做任何实现的空对象类,该空对象类将无缝地使用在需要检查空值的地方使用一个空对象取代 NULL 对象实例的检查,空对象不是检查空值,而是反应一个不做任何动作的关系。这样的空对象也可以在数据不可用的时候提供默认的行为。
 
技术分享
 
不要为了屏蔽null而使用空对象
应保持用null,远比用非null的值来替代“无值”要好。空对象模式其实本质上和“用0替代null”是一个道理。
当你仅是为了避免null的出现,那请不要使用空对象模式(Null Object Design)。
    想象一下旅馆订票的例子。一个用户操作由于某种原因,hotel数据变为了null,但是应用运行“正常”——因为我们讨厌null,所以我们把它屏蔽了。然后用户继续对着一个“NullHotel”在进行操作,而且还完成了整个操作。
    当用户真正到旅馆后发现,他并没有预订任何房间。旅馆现在满了,而且晚上11:00了,没周围没别的旅馆...不敢想象用户会怎么看待这个订票的程序...由于整个项目屏蔽了null的错误,没有人发现了这个问题的存在,所以..原来他一直是在和一个NullHotel玩呢...
来源:
译文:我们为什么爱你--null(2.方案“零”):http://www.jianshu.com/p/ba4450785d24#
译文:我们为什么爱你--null(3.空对象模式):http://www.jianshu.com/p/77305ee74954
 
 
 
 
 





空对象模式

标签:

原文地址:http://www.cnblogs.com/Doing-what-I-love/p/5621155.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!