ViewModels中的简单getter逻辑

时间:2017-04-03 11:08:24

标签: asp.net-mvc viewmodel asp.net-mvc-viewmodel

在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 ***/

}

1 个答案:

答案 0 :(得分:0)

您的代码相当不错。但是您可以使用 NULL对象设计模式来检查null并创建NullObject。

创建一个名为NullSearchParams的类,继承自SearchParams并在需要时对其进行初始化。

您可以在此处查看Null设计模式文档。

https://sourcemaking.com/design_patterns/null_object