2

私はさまざまな設計パターンについて多くの調査を行ってきましたが、これを行う正しい方法を決定しようとしています。

サムネイルの作成やデータベース レコードの保存など、いくつかの異なる方法で画像を処理する必要がある、開発中の画像アップロード 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 パターンはオブジェクトの状態の処理 (または共有) を処理しているようです。例を読みすぎているだけですか?パターンを組み合わせると解決策になりますか?

4

2 に答える 2