Сложный пользовательский интерфейс -> шаблон MVC - PullRequest
0 голосов
/ 25 марта 2010

Я много читал о шаблонах MVC / MVP .... У меня простой вопрос .... Если у вас есть представление с множеством элементов управления .... скажем, 10 текстовых и 10 флажков .... и т. д. ... Должен ли я указать свойства и события, каждое из которых, в моем интерфейсе IView? ....

1 Ответ

2 голосов
/ 25 марта 2010

Определенно не так. Ваш интерфейс IView определит набор контрактов / методов (он включает в себя свойства), к которым может обращаться ваш бизнес-уровень. Абсолютно неправильно выставлять ваш контроль в интерфейсе так:


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

Вы не должны иметь интерфейсы, определенные таким образом. Это действительно плохое программирование. Скорее вы должны выставить некоторые контракты, которые будет реализовывать ваш уровень пользовательского интерфейса. Э.Г.


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

Вы можете реализовать этот интерфейс на winform, а также на webform.

Аналогично, вы также не должны предоставлять знания интерфейса в интерфейсе (контракт). Предположим, что вы должны отобразить информацию об объекте Employee в пользовательском интерфейсе. Вы должны передать объект Employee в пользовательский интерфейс через этот интерфейс, и пользователь позаботится о способе представления этого объекта Employee.
Ваш BL никогда не должен беспокоиться о количестве текстовых ящиков и флажков.


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;
  } 

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...