论坛首页 Java企业应用论坛

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

浏览 1580 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-11-30  
看了篇论坛 对null Object的使用的认识和思考

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

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

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

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

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

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

所以一个好的系统必然会有其好的异常处理模式。JAVA的异常不是想象中那么简单的如果应用灵活了可以让代码开起来很舒服的。而且逻辑更严密,系统更健壮。
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics