通过设置属性或调用方法来驱动聚合视图模型?

时间:2010-03-05 14:50:14

标签: c# class

我正在与自己讨论控制我为我的应用程序创建的Aggreate View Model类的最佳实践方法...假设我有一个包含PurchaseOrder对象和订单项列表的聚合模型属于该采购订单,以及一些其他辅助/相关对象。这个视图模型只是处理所有这些对象的包装器,在处理任何给出的PurchaseOrder时,您将需要这些对象。

在创建此视图模型的实例之后,我希望它加载PurchaseOrder(它将自动加载PurchaseOrderLineItems并使所有其他相关对象饱和)...

因此,要指示视图模型加载PurchaseOrder,是否更容易接受:

  1. 通过在其上设置属性来指导视图模型(并通过加载数据让视图模型类的属性设置器响应)

    ViewModel.PoNo = 1234;

    1. 调用视图模型上的方法来完成工作:

      ViewModel.LoadPurchaseOrder(1234);

    2. 只是给出一些关于聚合视图模型的模式detials,它基本上是这样的:

          public class ViewModel
          {
            //-- private fields
            PurchaseOrder _Po = new PurcaseOrder();
            List<PurchaseOrderItem> _PoLineItems;
            Vendor _Vend = new Vendor();
            int _PoNo;
      
            //-- public properties here
      
            ViewModel(){} // Constructor
      
          }
      

1 个答案:

答案 0 :(得分:1)

除了将所有ViewModel信息相关联之外,此PurchaseOrder是否可用于任何其他目的?如果不是,我会说您应该在ViewModel的构造函数中传递您的采购订单,因为ViewModel似乎只有PurchaseOrder才会处于有效状态。

编辑:鉴于您列出的2个选项,我认为方法调用比设置属性更有意义,因为更容易告诉您正在将PurchaseOrder加载到此ViewModel中。作为开发人员,我不认为设置一个整数属性会最终加载ViewModel上的所有类型的对象,但是人们可能会期望通过调用方法。