【问题标题】:MVP Pattern Property Set or getMVP 模式属性设置或获取
【发布时间】:2012-05-24 20:10:22
【问题描述】:

我正在 asp.net 中实现 MVP 模式,但对网络上的许多示例感到困惑。

我看到 IEnumerable 实现为 get;和一些设定的时间;同样在其他情况下,我看到一个方法 void SetCategories(IEnumerable categories);

我的问题是关于 view (ex:IView) 的合同,它显示了 Categories IEnumerable 类别的列表

1) 我应该什么时候实现void SetCategories(IEnumerable<Category> categories);


2) 我应该什么时候实现IEnumerable<Category> Categories { get; set; }


3) 我应该什么时候实现IEnumerable<Category> Categories { set; }

【问题讨论】:

    标签: c# asp.net mvp


    【解决方案1】:

    1 和 3 非常相似,它们提供对类别的只写访问。如果您的演示者不需要阅读 Categories 集合,那么您应该使用 1 或 3。

    哪一个? code analysis rule 可能适用于此。

    如果替换集合是一个目标,首选的设计模式是包含一个从集合中删除所有元素的方法和一个重新填充集合的方法。

    然而,在 MVP 中,使用属性而不是方法更为常见(这可能就是您看到所有三种场景示例的原因。)所以这确实是一个偏好风格的问题。

    选项 2 提供上述所有内容以及对该属性的读取访问权限。如果演示者必须查看集合并从中读取一个值(或所有值),则需要这个。我认为这里的首选模式是使整个集合处于只读状态或选定类别的属性,即。单个Category。

    • 如果您需要读写访问权限,选项 2 可以,但它会 得罪 fxCop。

    • 如果您只需要写入权限,请使用选项 1 进行 fxCop

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-15
      相关资源
      最近更新 更多