私はさまざまな設計パターンについて多くの調査を行ってきましたが、これを行う正しい方法を決定しようとしています。
サムネイルの作成やデータベース レコードの保存など、いくつかの異なる方法で画像を処理する必要がある、開発中の画像アップロード MVC アプリがあります。これにアプローチする最善の方法は、フライウェイト パターンを使用することでしょうか? これを例として使用します。
var image = new Image();
List<IProcessors> processors = processorFactory.GetProcessors(ImageType.Jpeg);
foreach(IProcessor processor in processors)
{
processor.process(image);
}
この質問にも2番目の部分があります。プロセッサに関連する「サブプロセッサ」が小さい場合はどうなりますか? 私の頭の中にある例は、ブックジェネレーターです。
I have a book generator
that has page generators
that has paragraph generators
that has sentence generators
これもフライ級のパターンでしょうか?そのツリーのトラバーサルをどのように処理しますか?
編集
以下でこの質問をしましたが、ここに追加したかったのです。
私が見た複合パターンの例はすべて値の処理に関連しているように見えますが、flyweight パターンはオブジェクトの状態の処理 (または共有) を処理しているようです。例を読みすぎているだけですか?パターンを組み合わせると解決策になりますか?