比方說,我有很多相似的類(單位在這個例子中RTS), 也就是類Unit
和子類UnitA
,UnitB
,UnitC
等Java反射不良模式?
的單元類都具有下面的構造(包括單元)包含參數
public class UnitX {
public UnitX(FileReader fr) {
...read parameters for constructing the unit...
}
}
我的文件具有形式
UnitX params
UnitY params
....
和創建文件中的所有單位的名單將是一個while循環一樣
Class[] params = {FileReader.class};
while(fr has more to read) {
String unitType = fr.getString();
Unit u = (Unit)
java.lang.reflect.Constructor constr = Class.forName(unitType).getConstructor(params);
Unit u = (Unit)constr.newInstance(new Object[]{fr});
list.add(u);
}
我意識到,當我創建的文件對象我使用這個模式非常頻繁。 我的問題是,這是一種壞模式?有一個更好的方法嗎?
單元類本身是否提供 讀取/寫入文件讀取器/寫入器狀態的方法更合理嗎? 額外的單元類不需要在我的工廠類中進行更改。 – 2010-06-25 19:22:45
是的,這也是可能的,只要意識到你在混合責任人,但只要你意識到這一點,它可能意味着什麼就可以了。單元測試通常是故意簡單的,所以更直接的耦合方法通常是最合適的,因爲它更清晰。 – mdma 2010-06-25 19:49:39