相关疑难解决方法(0)

空对象模式以避免空检查?

最近我遇到了Null Object设计模式,我的同事说它可以用来取消整个代码中遇到的空指针检查.

例如,假设DAO类返回有关Customer的信息(在名为CustomerVO的值对象中).我的主要课程应该提取firstName和emailId并向客户发送电子邮件.

...
CustomerVO custVO = CustomerDAO.getCustomer(customerID);
if(custVO != null) { // imp, otherwise we may get null ptr exception in next line
     sendEmail(custVO.getFirstName(), custVO.getEmailID());
}
...
Run Code Online (Sandbox Code Playgroud)

这是一个非常简单的示例,但是这样的空检查可以根据值对象的复杂性快速传播到整个代码中.

我有两个与null检查的问题, - 它们倾向于使代码变得丑陋且难以阅读 - 经验较少的开发人员在实际上应该抛出异常时进行不必要的空检查.例如,在上面的代码中,最好从getCustomer()本身抛出异常,因为如果它无法找到给定CustID的客户信息,则表明CustID无效.

好吧,回到null对象模式,我们可以使用'null'CustomerVO对象隐藏空检查吗?

CustomerVO {
   String firstName = "";
   String emailID = ""; 
}
Run Code Online (Sandbox Code Playgroud)

这不是有意义的.你怎么看?

为了最大限度地减少应用中的空值检查,您遵循了哪些内容.

design-patterns null-object-pattern

6
推荐指数
1
解决办法
2579
查看次数