2

次のクラスを持つ MVC2 アプリケーションがあります。

-注文モデル

-LineOrderModel

-注文コントローラー

-LineOrderController

OrderController クラスでは、Web フォームのいくつかの値を再収集しています。これまで、各注文明細 (LineOrderModel クラス) と OrderClass のインスタンスを Controller 内に作成していました。

注文を作成するときに行うさまざまなことをカプセル化するために、 OrderFacade クラスを作成しようとしていました。

そのクラスで、次のようなメソッドを作成しました。

public void saveOrder(int idProvider,decimal? price)
        {
            // Here I create instances of OrderModel and LineOrderModel
            // and assign their properties
        }

しかし、私の問題は、Web フォームから取得したすべての注文明細を渡す方法がわからないことです。

orderLines クラスを持つ List を作成してそのメソッドに渡すのは意味がないと思います (これのポイントは、クラスではなく Facade で操作することであるため)。

さまざまな行 (すべて numberUnits、idProduct などのプロパティを持つ) を、それぞれがこれらのプロパティを持つ汎用オブジェクトのリストにカプセル化するにはどうすればよいでしょうか?

多分何かのようなList<List<object>>

前もって感謝します!

4

1 に答える 1

1

ファサードは必要ないようです。ビジネス ロジックとアプリケーション ロジック (コントローラー) の間でデータ転送オブジェクト (DTO) を使用する場合、Facade は適切な選択です。このようなシナリオでは、DTO をビュー モデルにすることもできます (オーソドックスな MVC 開発者はこのアイデアを好まないでしょう)。Facade は DTO を受け取り、それらをいくつかのビジネス オブジェクトまたはドメイン オブジェクトに変換します。

ただし、シナリオでは、データをモデル クラスに直接入力するだけで済みます。これが、ビュー モデル クラスをビューとコントローラーで使用する目的です。コントローラーからビジネス ロジックにデータを転送するために、あらゆる種類のプロパティ バッグを使用することは、良い解決策ではありません。

于 2011-02-16T23:41:32.593 に答える