说几句对null Object的使用的认识和思考

看了篇论坛 对null Object的使用的认识和思考

有人提到:
/
我个人理解的null object模式主要是用于
1,增强健壮性。
2,减少大量验证null object的重复编码。

即统一规定对象为null时对象对应方法的的默认行为,不过也有限制,就是要求实现公共接口。
具体也是有利有弊,具体问题具体分析。
/

我个人不这么认为。这个现在是一种隐藏异常的现象,虽然表面上可以让系统看起来稳定,因为异常看起来少了,可是作者也意识到异常的存在,难道眼不见为净?

用NULL去替换一个异常或者去表示一种返回这也许不是一件好的事情。

也许我们一个应用都看不到一个异常,所以异常都用特定的返回值进行标志了。这样真的好吗?
就MIS系统的开发开说,按上面的逻辑,DAO层如果异常了 我返回一个null或者某个特定标志,OK那我要在LOGIC层判断下吧(这样还好,如果没判断呢?是不是会引发新的异常),恩我在LOGIC层判断的时候还要知道你DAO返回的是什么异常。我又要去找下,看看DAO的代码。麻烦吧?(或者当开发人员没有考虑完全DAO会抛出哪些异常的情况下,是否会出现多个不同情况出现的异常返回同一个值的情况呢?这种情况是最糟糕的。)

如果换种方式,你在DAO层把为null的情况用异常的形式抛出去,那么你的LOGIC层就明了很多了,看见这个异常你就知道是为什么抛的了。

所以一个好的系统必然会有其好的异常处理模式。JAVA的异常不是想象中那么简单的如果应用灵活了可以让代码开起来很舒服的。而且逻辑更严密,系统更健壮。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值