這可能嗎?我可以根據字符串的值來從一個類或另一個類實例化對象嗎?根據字符串的值從類A ... Z創建對象(可伸縮)
我有一個這樣的代碼:
public Map<Language, IConverter> converters;
// ...
public IConverter buildConverter(Language lang) {
IConverter converter = new ???(buildMap(lang)); <---- Problem here
converters.put(lang, converter);
}
public Map<Integer, String> buildMap(Language lang) {
// ...
}
哪裏Language
是含有識別語言和IConverter
是混凝土Converter
由幾個(未定義量)實現的接口的字符串bean類。
我需要爲每個支持的Converter
添加if
子句嗎?無論如何,要確定哪個字符串屬於哪個類,可能帶有Map或類似的東西?
我可能會放棄Language類,因爲它有點淺,無法看到它的縮放。
編輯
我使用加斯帕的回答結束後,我不得不去適應我的Language
類它包含完整的語言名稱,和連接的包名,languagename和「轉換器」。
男孩,起初是反思,很多很多例外。
[GoF的德興模式的示例](http://stackoverflow.com/a/2707195/1654265):看一看***創建模式*** 。 –
您能否給我們提供if語句的示例代碼,以便我們更好地理解它? thnx – Apostolos