2

我有一个包含以下类的 MVC2 应用程序:

-订单模型

-LineOrderModel

-订单控制器

-LineOrderController

在 OrderController 类中,我正在回忆 web 表单的一些值。到目前为止,我在 Controller 中创建了每个订单行(LineOrderModel 类)和 OrderClass 的实例。

我试图创建一个 OrderFacade 类,以便封装创建订单时要做的不同事情。

所以在那个类中,我创建了一个这样的方法:

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

但我的问题是我不知道如何传递从网络表单中捕获的所有订单行。

我认为创建一个带有 orderLines 类的 List 并将其传递给该方法是没有意义的(因为这样做的目的是使用 Facade,而不是直接使用该类)

我如何将不同的行(都具有 numberUnits、idProduct ... 等属性)封装到一个通用对象列表中,每个对象都具有这些属性?

也许像一个List<List<object>>

提前致谢!

4

1 回答 1

1

听起来你不需要门面。如果您在业务逻辑和应用程序逻辑(控制器)之间使用数据传输对象(DTO),Facade 将是一个不错的选择——在这种情况下,DTO 也可以是视图模型(我猜正统的 MVC 开发人员不会喜欢这个想法)。Facade 会采用 DTO 并将它们转换为一些业务或领域对象。

但是在您的场景中,您只需将数据直接填充到模型类中 - 这是视图模型类在视图和控制器中使用它们的目的。使用任何类型的属性包将数据从控制器传输到业务逻辑都不是一个好的解决方案。

于 2011-02-16T23:41:32.593 回答