テンプレートメソッドパターンを使用したいときによくある状況になりますが、テンプレートメソッドは次のような別のタイプのパラメーターを想定しています。
public abstract class AbstractFoo {
public void process(TypeA a, TypeB b) {
//do common processing
if (b == null) {
doProcess(a);
} else if(a == null) {
doProcess(b);
}
}
public abstract void doProcess(TypeA a);
public abstract void doProcess(TypeB b);
}
これはよく見えません。提供されるパラメーターの1つはヌルである必要があり、すべてのサービスは他のタイプのダミーのdoProcessメソッドを実装する必要があります。これに適したパターンはありますか?これにどのように対処しますか?これらのサービスはSpringBeanであるため、コンストラクターは使用しません。同じ問題がストラテジーパターンにも当てはまります。