在ViewModels getter中是否可以使用简单的逻辑(没有任何依赖关系),或者它应该只包含自动属性?在这种情况下只检查null,所以每次我使用这个ViewModel时,我都不必在控制器中这样做。 TicketSearchParameters是一个包含字符串和日期属性的简单模型,没有存储库或任何其他依赖项。
public class MyViewModel
{
private TicketSearchParameters _searchParams;
public TicketSearchParameters SearchParams
{
get
{
if (_searchParams == null)
{
_searchParams = new TicketSearchParameters();
_searchParams.CreatedFrom = DateTime.Now.AddDays(-7);
_searchParams.CreatedTo = DateTime.Now;
}
return _searchParams;
}
set
{
_searchParams = value;
}
}
/*** other properties ***/
}
答案 0 :(得分:0)
您的代码相当不错。但是您可以使用 NULL对象设计模式来检查null并创建NullObject。
创建一个名为NullSearchParams的类,继承自SearchParams并在需要时对其进行初始化。
您可以在此处查看Null设计模式文档。