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 を使用すると、デフォルト値が自動的に使用される可能性があります。