本文为敏捷软件开发 - 原则、模式与实践系列的一部分。
本文对应原书第17章
该模式会消除对null进行检查的需要,并且有助于简化代码。
public interface Employee {
public bool isTimeToPay(DateTime time);
public void pay();
public static final Employee NULL = new Employee() {
public bool IsTimeToPay(DateTime time) {
return false;
}
public void Pay() {}
};
}
结论
那些长期使用C-based语言的人已经习惯于函数对某种失败返回null或者0。我们认为对这样的函数的返回值是需要检查的。NULL OBJECT模式改变了这一点。使用该模式,我们可以确保函数总是返回有戏的对象,即使在它们失败时也是如此。这些代表失败的对象“什么也不做”。
完整内容请查看敏捷软件开发 - 原则、模式与实践系列