什么是NullObject模式

diaoerdiaoerdiaoer 2011-07-12 04:11:03
什么是NullObject模式

最好举例说明
...全文
241 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
安心逍遥 2011-07-12
  • 打赏
  • 举报
回复
http://www.iteye.com/topic/100192
呵呵,看看这个,一目了然
mopishv0 2011-07-12
  • 打赏
  • 举报
回复
用来标识对象是空对象或者空集和 却又不想使用判断来破坏原有的程序结构
在JDK中
Null Object:
这个模式用来解决如果一个Collection中没有元素的情况。

java.util.Collections#emptyList()
java.util.Collections#emptyMap()
java.util.Collections#emptySet()
lyhmy 2011-07-12
  • 打赏
  • 举报
回复
http://www.iteye.com/topic/100192
网上不是有的么
皮皮 2011-07-12
  • 打赏
  • 举报
回复
http://blog.csdn.net/JJ___JJ/article/details/5424076
凌风雪雕 2011-07-12
  • 打赏
  • 举报
回复
本人理解就是在某个对象创建失败的时候,我们不能抛给用户,而应该让用户可以继续做他们的事情。比如说我做过的一个项目。一个缓存系统。当用户传入的服务器配置不正确时,它是创建不了客户端对象的。这里的话,我们的处理是返回NullObject给用户,然后通过定时器来取,看服务器有没有变化,即在服务器配置是正确的时候让用户使用,在不正确的使用,用户也可以使用,只不过没有用到我们的缓存而已。

protected ICacheClientImpl() {
try {
timeout = CacheOptions.getDefaultTimeout();
expireTime = CacheOptions.getDefaultExpireTime();
memcachedClient = ICacheClientHelper
.getMemcachedClient(ServerListHelper.getCacheServerList());
} catch (Exception e) {
logger.error(e.getMessage());
memcachedClient = new NullObject();
}
}

final static class NullObject implements MemcachedClient {
.....................
}

51,409

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧