我想嘗試工廠模式,並能夠實現它,但當產生超過幾個類的
,我認爲這將是醜陋的!所以任何的清晰度或建議將非常感激......如何確定工廠模式中的子類類型,而不是使用if else和switch?
我的超類:
public abstract class Output {
public abstract void generate(Data dat); }
我得到了我從輸出擴展其他類,如
public class generateXML extends Output{
.
.
.
}
我的問題是有關在這裏:
public class generatorFactory(){
public Output generate(String str){
//或獲得一個對象作爲參數,如(Object obj)
if(str.equals("xml"){
return new generateXML();
}
else if.........
......
}
有沒有什麼辦法可以確定子類型避免檢查每種類型?
感謝您的建議,但我對您的第二個提示有點困惑「」GenerateXML「是一個動詞,即一個動作,因此它不是一個正確的單詞,而是一個方法。 XMLGenerator「」你是指類名嗎? –
是的,我願意。最好的是在我看來。 –
是的,我願意。你應該命名你的類爲'XMLGenerator',通過'final Generator myGenerator = new XMLGenerator()'實例化它,並使用'myGenerator.generate()'這個實例。然而,在你的特定情況下,你將會有'Generator myGenerator =(Generator)(generatorClass.newInstance());' –