powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / MVC и избыточность кода
3 сообщений из 3, страница 1 из 1
MVC и избыточность кода
    #36783736
Andrey Vokin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа, долго раздумываю над преимуществами и недостатками подхода Model-View-Controller.

Если не вдаваться в подробности, то все выглядит хорошо и логично. Данные, представление и управление разделены, нет никакой каши и все красиво... Но когда я приступаю к реализации такого подхода - приходится писать много рутинного кода, который необходим, для того чтобы три части MVC могли взаимодействовать друг с другом.

Для примера простая задача - сделать форму с кнопкой add, которая добавляет товар в корзину. С точки зрения модели это выглядит как добавление объекта Product, с точки зрения представления - добавление контрола, который отрисует параметры товара.

Поскольку view и controller взаимодействуют друг с другом через паттерн Observer, то приходится создать интерфейс AddProductListener, в контроллере реализовать этот интерфейс (класс AddProductListenerImpl). Теперь контроллер умеет обрабатывать нажатие кнопки и, соответвенно, добавить объект Product в модель. Теперь же очередь модели проинформировать View, что добавился новый элемент. Это можно также сделать через паттерн Observer, что опять же добавит еще один интерфейс ([src]ProductModelChangedListener) и класс (ProductModelChangedListenerFrameImpl). Итого четыре дополнительных класса.

В общем все выходит довольно громоздко, мне это ненравится. Может быть у меня неверное представление о том как надо правильно реализовывать MVC? Или это небольшое неудобство, которое окупается, если речь идет о больших формах со сложной логикой поведения?
...
Рейтинг: 0 / 0
MVC и избыточность кода
    #36783866
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey Vokin...мне это ненравится...
Мне тоже не нравится. Модель должна быть в БД, контроллер на серверном языке, а вью - хтмл+яваскрипт (возможны варианты, как удобнее). И все дела. Спорить с этим невозможно по определению первого, второго и третьего.
ПС. Это если Вы имеете в виду вэб-приложения. В противном случае, лучше застрелиться или, по крайней мере, нафиг бросить эту глупость и писать двухслойные приложения.
В свои молодые годы писал начальнику диссертацию по структурному программированию. Сам, по некоторым причинам, никогда не использую это из-за неудобства и плохой читаемости.
ППС. Во-первых не всё золото, что блестит, а во-вторых некоторые штучки придумывают умные люди, но специально для дураков.
...
Рейтинг: 0 / 0
MVC и избыточность кода
    #36784769
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey Vokin wrote:

> Для примера простая задача - сделать форму с кнопкой add, которая
> добавляет товар в корзину. С точки зрения модели это выглядит как
> добавление объекта Product, с точки зрения представления - добавление
> контрола, который отрисует параметры товара.
> Поскольку view и controller взаимодействуют друг с другом через паттерн
> Observer, то приходится создать интерфейс AddProductListener, в

view и model взаимодействуют друго с другом через Observer.
controller тут ни при чём.

> контроллере реализовать этот интерфейс (класс AddProductListenerImpl).

во view.

> Теперь контроллер умеет обрабатывать нажатие кнопки и, соответвенно,
> добавить объект Product в модель.

Зачем для обработки нажатия кнопки нужно реализовать интерфейс
AddProductListener -- не понятно.


Теперь же очередь модели
> проинформировать View, что добавился новый элемент. Это можно также

А AddProductListener тебе был зачем ?

> сделать через паттерн Observer, что опять же добавит еще один интерфейс
> ([src]ProductModelChangedListener) и класс
> (ProductModelChangedListenerFrameImpl). Итого четыре дополнительных класса.

Ну, тогда тебе не нужен был AddProductListener .


> В общем все выходит довольно громоздко, мне это ненравится. Может быть у
> меня неверное представление о том как надо правильно реализовывать MVC?

Видимо, да.

> Или это небольшое неудобство, которое окупается, если речь идет о
> больших формах со сложной логикой поведения?

Окупается это не тем, что большие формы со сложной логикой могут
работать, а тем, что у тебя может быть N view и M controller-ов,
и один и тот же документ. И ты это всё можешь комбинировать в приложении
почти произвольным образом. MS Word видел ? Там хоть 20 окон можно на
один документ открыть, в разных вариантах просмотра (структура, макет страницы,
редактирование и т.п.) Вот это и есть преимущество MVC. Оно не делает
что-то лучше, оно ВООБЩЕ ДЕЛАЕТ ЭТО ВОЗМОЖНЫМ. Разницу чувствуешь ?
Ну и соответственно, за все возможности приходится чем-то платить,
в MVC это -- более сложная структура классов программы и где-то лишний
код (на самом деле его нет, лишнего, потому что без MVC его было бы
ещё больше).
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / MVC и избыточность кода
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]