是否可以
在 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 ***/
}
你的代码相当不错。但是,您可以使用 NULL 对象设计模式来检查 null 并创建 NullObject。
创建从 SearchParams继承的名为 NullSearchParams 的类,并在需要时对其进行初始化。
您可以在此处查看空设计模式文档。
https://sourcemaking.com/design_patterns/null_object