【转】关于返回 Null 值的问题
我总感觉一个方法返回null值有问题。当读了Misko Hevery关于how to think about OO的博客文章后,又让我想起这个问题。
我感觉返回null值是有问题的,它大量的被使用在一个方法有不同的返回类型时。简单的用谷歌搜索一下“returning null”,你就会发现有建议把返回类型做成一个null对象。返回一个Null对象在某些情况下是合适的,但并不适合当你需要向客户端传送两种不同的东西的情形。用Misko重构的一段代码来说明这个问题。他重构的是一段登录代码(我非常喜欢他的过程),这段代码大概是这个样子:
public void authenticateUser(User user) { user.login(ldap,this); } public void authSucceeded(Cookie cookie) { //register them as logged in } public void authFailed(User user) { //register them as auth failed }