NullObjectPattern旨在成为一种“安全”(中性)行为。
这个想法是创建一个不做任何事情的对象(但也不抛出 NullPointerException )
例如定义为的类:
class Employee {
private String name;
private int age;
public String getName(){ return name; }
public int getAge() { return age; }
}
将在此代码中导致 NullPointerException:
class Other {
Employee oscar;
String theName = oscar.getName(); // NPE
}
NOP 说的是,您可以拥有这样的对象:
class NullEmployee extends Employee {
public static final Employee instance = new NullEmployee();
public String getName(){ return ""; }
public int getAge() { return 0; }
}
然后将其用作默认值。
Employee oscar = NullEmployee.instance;
问题来了,当您需要为您创建的每个类重复代码时,解决方案就是拥有一个创建它的工具。
创建这样的工具或使用它(如果存在)是否可行/合理/有用?
也许使用 AOP 或 DI 可以自动使用默认值。