我有一個小的設計問題上,我希望得到一些建議允許最大的靈活/可擴展性:使用工廠
我有幾類,從同一個基類繼承,每個人都可以接受同樣的數據並以稍微不同的方式進行分析。
Analyzer
|
˪_ AnalyzerA
|
˪_ AnalyzerB
...
我有一個定義了分析應該調用及其參數的輸入文件(我沒有對文件的格式控制)。另外,它也以相同的方式定義了數據提取器,也包含了其他類似的東西(類似的,我的意思是這是一個可以有多種變化的動作)。
我有一個模塊在文件中不同的分析儀,它遍歷並調用一些工廠,構建正確的分析。對於輸入文件可以定義的每個原型,我都有一個工廠,並且非常好。
但是,如果我想擴展它,並添加一個新的類型分析是什麼?
我在考慮的解決方案是爲每個工廠使用屬性文件,這些工廠將以工廠名稱命名,並且它將在輸入文件的任何想要執行的定義與實際類別之間保持映射關係用於執行操作。
這樣我可以加載的類在運行時 - >驗證它是否實施正確的接口,然後執行它。
如果某些John Doe想創建他自己的分析器,他只需要添加一個新的屬性到正確的文件中(我不太清楚什麼是允許這種屬性定製的最佳策略) 。
因此,在短期:
- 是我的解決方案也有缺陷?
- 如果沒有什麼是用戶友好/方便的方式來允許自定義屬性?
P.S
- 不幸的是,我僅限於使用只建立JDK類爲現有的解決方案,所以我不能剛落,在SF上他們。
- 我希望這個問題不會脫節我只是不習慣以這種方式削減我的翅膀,沒有SF或其他人來幫助我實現一個優雅的解決方案。
您可能會發現[程序員堆棧交換](http://programmers.stackexchange.com/)更適合這種類型的概念問題。 – Bobulous 2013-04-27 12:32:34