0

私は常にコードの再利用のためにファクトリパターン/継承に頼っているようで、継承よりも構成について読んでいて、緩い結合の利点を理解しています。あなたは間違いなく継承との依存関係を取得します。だから私は「プロセス」オブジェクトのパターンに頭を包み込もうとしています。

それらはすべて基本的に、

  • データベースから「環境変数」を取得し、
  • ファイルのリストを取得し、
  • 各ファイルを処理/変換します(XMLをCSVに変換することを考えてください)。
    • ファイルを1行ずつ読み取る
    • ファイルを別の形式で1行ずつ書き込む
    • ステータスの更新(データベースへのステータスの書き込み)

ファイルのリストを取得するということは、ローカルディレクトリからファイルのリストを取得すること、またはリモートFTPサイトからファイルのリストを取得することを意味する場合があります。

私がcompositoinで苦労しているのは、CODEREUSEです。継承を使用して、基本抽象クラスがある場合は、GetEnvironment、UpdateStatus、メソッドを基本クラスに配置すると、子クラスがそれらを無料で取得できます。コンポジションを使用して、このようなコードを再利用するにはどうすればよいですか?ヘルパークラスを作成することもできますが、基本的には、各「プロセス」クラスでこれらのヘルパークラスの定型的な使用を繰り返します。必要に応じて、いくつかの擬似コードを作成できます。

4

1 に答える 1

0

質問の詳細を考えると、私は次のように私の解決策を持っているでしょう:

  • 環境
    • 環境の詳細を保持するドメインオブジェクト。
  • EnvironmentDAOおよびDBEnvironmentDAO
    • 環境ドメインオブジェクトを構築するためのインターフェースとDBに裏打ちされた実装。
  • AToBConverter
    • ファイルと環境オブジェクトへの参照を取得します
    • 変換を実行し、別のファイルに書き込み、DBのステータスを更新します
  • ランチャー
    • ファイルのリストを取得します。
    • DAOを使用してデータベースから環境を取得します。
    • スケーラブルなメカニズム(ExecutorServiceなど)を使用して、AToBConvertersを並列で実行します。
于 2012-10-04T16:05:59.140 に答える