【问题标题】:Complex User Interface -> MVC pattern复杂的用户界面 -> MVC 模式
【发布时间】:2010-03-25 07:13:49
【问题描述】:

我已经阅读了很多关于 MVC/MVP 模式的内容......我有一个简单的问题......如果你有一个包含大量控件的视图......比如说 10 个 texbox 和 10 个复选框......等等等等……我是否应该在我的 IView 界面中指定属性和事件?……

【问题讨论】:

    标签: c# model-view-controller


    【解决方案1】:

    绝对不是这样。 您的 IView 接口将定义您的业务层可以访问的一组合同/方法(它包括属性)。 在这样的界面中暴露你的控件是完全错误的:

    public interface IView { TextBox UserNameTextBox{get;set;} }

    您不应该以这种方式定义接口。这真是一个糟糕的编程。 您应该公开一些您的 UI 层将实现的合同。 例如

    public interface IView { public void SetUserName(string Text); }

    你可以在winform和webform上实现这个接口。

    同样,您也不应该在界面(合同)中公开 UI 知识。 让我们假设一个场景,您必须在 UI 上显示 Employee 对象的信息。 您应该通过此接口将 Employee 对象传递给 UI,UI 将负责表示此 Employee 对象的方式。
    您的 BL 永远不应该为 n 个文本框和复选框而烦恼。

    public class Employee { //first name //last name //is manager //is teamleader //address } public interface IEmployeeView { void SetEmployee(Employee employee); } public partial class EmployeeForm:WinForm,IEmployeeView { public void SetEmployee(Employee employee) { ENameTextBox.Text = employee.FirstName+" "+employee.LastName; } }

    【讨论】:

      猜你喜欢
      • 2011-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多