我正在与自己讨论控制我为我的应用程序创建的Aggreate View Model类的最佳实践方法...假设我有一个包含PurchaseOrder对象和订单项列表的聚合模型属于该采购订单,以及一些其他辅助/相关对象。这个视图模型只是处理所有这些对象的包装器,在处理任何给出的PurchaseOrder时,您将需要这些对象。
在创建此视图模型的实例之后,我希望它加载PurchaseOrder(它将自动加载PurchaseOrderLineItems并使所有其他相关对象饱和)...
因此,要指示视图模型加载PurchaseOrder,是否更容易接受:
通过在其上设置属性来指导视图模型(并通过加载数据让视图模型类的属性设置器响应)
ViewModel.PoNo = 1234;
或
调用视图模型上的方法来完成工作:
ViewModel.LoadPurchaseOrder(1234);
只是给出一些关于聚合视图模型的模式detials,它基本上是这样的:
public class ViewModel
{
//-- private fields
PurchaseOrder _Po = new PurcaseOrder();
List<PurchaseOrderItem> _PoLineItems;
Vendor _Vend = new Vendor();
int _PoNo;
//-- public properties here
ViewModel(){} // Constructor
}
答案 0 :(得分:1)
除了将所有ViewModel
信息相关联之外,此PurchaseOrder
是否可用于任何其他目的?如果不是,我会说您应该在ViewModel
的构造函数中传递您的采购订单,因为ViewModel
似乎只有PurchaseOrder
才会处于有效状态。
编辑:鉴于您列出的2个选项,我认为方法调用比设置属性更有意义,因为更容易告诉您正在将PurchaseOrder加载到此ViewModel中。作为开发人员,我不认为设置一个整数属性会最终加载ViewModel上的所有类型的对象,但是人们可能会期望通过调用方法。