Я розробив MVC (в.NET), де Вид не має посилання на Модель. Про контролер це знає лише він. Традиційний MVC-шаблон має всі частини, що спілкуються один з одним. У моєму випадку Контролер в основному є посередником. Це не дозволяє виключати будь-які винятки чи логіку з виду. Він має нульову залежність від Моделі. Це вже не MVC?
Відповіді:
19 за відповідь № 1Те, що ви описуєте, насправді є підмножиною Model-View-Controller, що називається Пасивний вид.
Пасивний вид - це ще одна зміна намодель-перегляд-контролер і модель-перегляд-презентатор. Як і з цими інтерфейс користувача розділений між поданням, яке обробляє дисплей і контролер, що відповідає на жести користувачів. The суттєві зміни з пасивним видом полягає в тому, що погляд зроблений повністю пасивний і більше не несе відповідальності для оновлення від моделі. Як в результаті вся логіка перегляду є контролер. Як результат, є відсутність залежності в будь-якому напрямку між видом і моделлю.
Мартін Фаулер про це говорить в вище посилання і коротко обговорює інші варіанти тут.
1 для відповіді № 2
Я думаю, а не MVC, це просто VC, так?
У реалізаціях MVC представлення підписується назміни в моделі та діє на контролер; контролер вносить зміни в модель, які поширюються на погляди шляхом їх посилання на модель. У вашому випадку це здається більше схожим на те, що ви поховали модель у своєму контролері (адже ви маєте дістати свої дані звідкись); це "необов'язково погано чи що-небудь", але це також не MVC у строгому розумінні.
0 для відповіді № 3
Ваш підхід здається дуже схожим MVP, але я не можу сказати точно без додаткових подробиць.
0 для відповіді № 4
У суворому сенсі ні. Але чи є ШЛЯХ для перегляду, якщо це необхідно, без зміни архітектури / інтерфейсів?
[Наприклад, якщо у вас реалізований метод TalkToModel (), навіть якщо ви його ще не використовуєте, це, на мій погляд, MVC.]