私はいくつかのアドバイスを得たいと思う小さな設計上の問題があります:
同じ基本クラスから継承するいくつかのクラスがあり、それぞれが同じデータを受け入れ、わずかに異なる方法で分析できます。
Analyzer
|
˪_ AnalyzerA
|
˪_ AnalyzerB
...
呼び出すアナライザーとそのパラメーターを定義する入力ファイルがあります (ファイルの形式を制御することはできません)。さらに、同じ方法でデータ抽出器を定義し、他の同様のものも定義します (同様に、これはいくつかのバリエーションを持つことができるアクションであることを意味します)。
ファイル内のさまざまなアナライザーを反復処理し、正しいアナライザーを構築するファクトリを呼び出すモジュールがあります。入力ファイルが定義できるアーキタイプごとにファクトリがあり、これまでのところ良好です。
しかし、それを拡張して新しいタイプのアナライザーを追加したい場合はどうすればよいでしょうか?
私が考えていた解決策は、ファクトリ名にちなんで名付けられた各ファクトリのプロパティ ファイルを使用することです。これは、入力ファイルの実行したいものの定義と、実行に使用する実際のクラスとの間のマッピングを保持します。アクション。
このようにして、実行時にそのクラスをロードできます->正しいインターフェイスを実装していることを確認してから実行します。
John Doe が独自のアナライザーを作成したい場合は、正しいファイルに新しいプロパティを追加するだけで済みます (この種のプロパティのカスタマイズを可能にする最善の戦略が何であるかはよくわかりません)。
要するに:
- 私のソリューションはあまりにも欠陥がありますか?
- いいえの場合、プロパティのカスタマイズを許可する最もユーザーフレンドリー/便利な方法は何ですか?
PS
- 残念ながら、私は既存のソリューションとしてビルドイン JDK クラスのみを使用することに限定されているため、それらに SF をドロップすることはできません。
- この質問が的外れでないことを願っています。私は翼をこのように切り取ることに慣れていないだけで、エレガントなソリューションを実装するのに役立つSFやその他のものを持っていません。