2009-05-26 2 views
3

Существует много путаницы в отношении MVC, но после того, как вы пролистываете книгу «Head First patterns» (как побочная заметка, которую я ненавижу эту марку, хотя этот пример был неплохим), он утверждает, что MVC или Model View Controller - это гибрид нескольких шаблонов - медиатор, наблюдатель и т. д.Это MVC? Какой «шаблон дизайна» я использовал?

В недавнем прототипе я сделал следующее, это C#, но должен быть простым.

Person : IPerson { 
    public Name { get; set;} 
    public Age { get; set;} 
} 

IPerson - это просто интерфейс, определяющий вышеизложенное - я оставил его для простоты.

PersonController : IPersonController { 
    public event DetailsUpdated; 
    public void SetAge(int age); 
    public int GetAge(); 
    public void SetName(string name); 
    public string GetName(); 
} 

Я знаю, что вышеуказанные могут быть собственностью - но это всего лишь простой пример. Событие запускается каждый раз, когда некоторые данные изменяются - например, в SetAge/SetName.

interface IView { 
    void Initialize(); 
    void SetAgeClicked(object sender, EventArgs e); 
    void SetNameClicked(object sender, EventArgs e); 
} 

Инициализировать прокладку проводов - например, текстовые поля в форме. SetAge/SetName - это события кнопки, поэтому форма/страница и т. Д. Должны иметь эти методы.

Form : IView { 

    // IView is implemented. 
    // Form is wired up 
    // Initialize is set etc... 
} 

Я слышал испытание MVC, когда вы добавляете новый взгляд легко получить материал и работает - ну да это было. Однако, это MVC? Это что-то еще?

Любой совет/ввод будет отличным. Он работает - он просто хочет знать, почему.

Спасибо.

+0

Yup, это шаблон дизайна MVC, который у вас есть. –

+0

Я видел мнение (и я согласен), что MVC - это не шаблон дизайна, а архитектурный образец. –

+0

Сделал еще один прототип, и он уверен, что подходит под пассивный вид. Ссылка: http://blog.vuscode.com/malovicn/archive/2007/11/04/model-view-presenter-mvp-design-pattern-close-look-part-2-passive-view.aspx – Finglas

ответ

2

Я бы сказал, что у вас есть больше, чем MVP (Model-View-Presenter), чем MVC. Существует два основных варианта MVP ... Контролирующий контроллер и пассивный вид. То, что у вас здесь, кажется самым близким к пассивному представлению, которое представляет собой довольно классическую реализацию MVP, которую люди используют для улучшения и абстрактного WebForms. Вы можете прочитать больше о реализации MVP для WebForms здесь:

http://haacked.com/archive/2006/08/09/ASP.NETSupervisingControllerModelViewPresenterFromSchematicToUnitTestsToCode.aspx

То же общая идея относится к Windows Forms тоже.

+0

Хорошо, я посмотрю Пассивный вид. Он появился раньше, поэтому я проверю его. – Finglas

2

Я проголосую за другое.

Причина, по которой я говорю, это тонна дебатов о том, что такое MVC.

См What's a controller anyway?

+0

Ok , Я изменю его как вариант или тип MVC. – Finglas

1

Хотя это реализация MVC, у вас там, не используя one Microsoft made and recently released. Overview of it от Скотта Гутера, если вы хотите какую-то историю. Некоторые могут называть это MVP, где вместо Controller эта часть называется Presenter, которая обычно обрабатывает бизнес-логику и взаимодействие с пользователем.

Смежные вопросы