我常常陷入的情況時,我想使用模板方法模式,但模板方法需要不同類型的參數,如:模板方法模式
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);
}
這看起來不太好。提供的參數之一必須爲空,並且所有服務都必須爲其他類型實施虛擬doProcess方法。有沒有更好的模式呢?你如何處理這個問題?我不想使用構造函數,因爲這些服務是spring bean。同樣的問題也適用於策略模式。
怎麼樣使用泛型? –