「スーパークラスとn個のサブクラスがあり、提供されたデータに基づいて、サブクラスの1つのオブジェクトを返す必要がある場合、ファクトリパターンを使用します」と言われているように
状況: 20 のクライアントがあり、時間の経過とともにさらに追加できます。それぞれが、データが抽出されてデータベースに挿入されるファイルを提供します。すべてのクライアントには、ファイルを維持する独自のスタイルがあります。つまり、データ フィールドはさまざまな場所にあります。
解決策: これには、ファクトリデザインパターンを使用する必要があると思います。20個のクラスを作成し、すべてのクラスに、ファイル内のどの場所からどのように抽出する必要があるかなど、すべてのフィールドの独自の実装があります。新しいクライアントが追加されたら、新しいクラスを作成するだけで完了です。他の変更は必要ありません。
私はここまで正しいですか?
複雑さ: 問題は、クライアントが提供するファイルが 4 つの形式 (PDF、XLS(X)、HTML、TXT) のいずれかである可能性があることです。これらの形式からテキストを抽出するエンジンは、pdftoXML を使用して PDF を XML などに抽出するように、静的である必要があります。PDF を XML に変換するだけの別のエンジン クラスを作成しない場合は、その機能を書き直す必要があります。 PDF でファイルを提供するすべてのクライアントのクラスでの PDF テキスト抽出。エクセル抽出エンジンも同様です。
質問: これらのエンジンをファクトリー パターンに組み込むにはどうすればよいですか? エンジンクラスは静的で、たとえばpdfを処理する必要があるサブクラスは、必要なデータを取得するためにpdfクラスの抽出メソッドを呼び出す必要がありますか?
私は自分自身を明確にしたことを願っています、ありがとう