私は常にコードの再利用のためにファクトリパターン/継承に頼っているようで、継承よりも構成について読んでいて、緩い結合の利点を理解しています。あなたは間違いなく継承との依存関係を取得します。だから私は「プロセス」オブジェクトのパターンに頭を包み込もうとしています。
それらはすべて基本的に、
- データベースから「環境変数」を取得し、
- ファイルのリストを取得し、
- 各ファイルを処理/変換します(XMLをCSVに変換することを考えてください)。
- ファイルを1行ずつ読み取る
- ファイルを別の形式で1行ずつ書き込む
- ステータスの更新(データベースへのステータスの書き込み)
ファイルのリストを取得するということは、ローカルディレクトリからファイルのリストを取得すること、またはリモートFTPサイトからファイルのリストを取得することを意味する場合があります。
私がcompositoinで苦労しているのは、CODEREUSEです。継承を使用して、基本抽象クラスがある場合は、GetEnvironment、UpdateStatus、メソッドを基本クラスに配置すると、子クラスがそれらを無料で取得できます。コンポジションを使用して、このようなコードを再利用するにはどうすればよいですか?ヘルパークラスを作成することもできますが、基本的には、各「プロセス」クラスでこれらのヘルパークラスの定型的な使用を繰り返します。必要に応じて、いくつかの擬似コードを作成できます。