inte***ce fruit
public void eat()
}
class orange implements fruit
} //構造工廠類
//也就是說以後如果我們在新增其他的例項的時候只需要修改工廠類就行了
class factory
if("orange".equals(fruitname))
return f;
} } class hello
}
上面寫法的缺點是當我們再新增乙個子類的時候,就需要修改工廠類了。如果我們新增太多的子類的時候,改動就會很多。
inte***ce fruit
public void eat()
} class orange implements fruit
} class factorycatch (exception e)
return f;
} } class hello
} }
現在就算我們新增任意多個子類的時候,工廠類都不需要修改。使用反射機制實現的工廠模式可以通過反射取得介面的例項,但是需要傳入完整的包和類名。而且使用者也無法知道乙個介面有多少個可以使用的子類,所以我們通過屬性檔案的形式配置所需要的子類。
orange=com.***.orange
然後編寫主類**:
inte***ce fruit
public void eat()
} class orange implements fruit
} //操作屬性檔案類
class initelse
return pro;
} } class factorycatch (exception e)
return f;
} } class hello
} }
工廠模式(簡單,配置檔案,反射,工廠方法,抽象)
簡單工廠模式的缺點,把矛盾集中在簡單工廠類中,使工廠類高耦合,而且進行修改和新增的時候也會比較麻煩。簡單工廠模式的優點,結構更加清晰,使 容易維護和分工明確,如下 namespace designmode public enum traffictype 下面是簡單工廠的意識圖 工程模式加上配置檔案的...
objective c實現配置檔案 反射 工廠建立
1.先寫plist配置檔案 plist寫到resouce裡面去 通過nsbundle把資料取plist讀出來 2.通過 nsclassfromstring建立類 nsclassfromstring nsselectorfromstring 正常來說,id myobj nsclassfromstrin...
登陸 抽象工廠 反射配置檔案
還記得照葫蘆畫瓢嗎?在敲機房收費系統的時候的確是照著三層加上自己的理解來敲的,整個過程下來就是完全照葫蘆畫瓢的。但是第一次成型,出現問題的時候,請教了別人。他將我的錯誤指出來,以及我自創的三層架構。看了看別人的,我的簡直不堪入目。別人長得是葫蘆,我這本來是葫蘆根,長出來的確是絲瓜,四不像。之後忍受各...