Как называется этот шаблон проектирования Java? - PullRequest
2 голосов
/ 04 марта 2010

Допустим, у меня есть проект Java с графическим интерфейсом, имитирующий банкомат, и у меня есть такие классы, как:

 - RegisterWindow
 - LoginWindow
 - MainAccountOptionsWindow

и т. Д., Где все классы сосредоточены вокруг панелей / окон, а не на обычном дизайне ОО. Кто-то сказал мне, что это определенный шаблон дизайна, может быть, что-то, начинающееся с E, я просто не могу вспомнить, что они сказали сейчас! Кто-нибудь знает? Разве так плохо спроектировать вещи таким образом?

спасибо

Ответы [ 6 ]

5 голосов
/ 04 марта 2010

Это зависит от того, как события распространяются между окнами и из них.

Хорошая вещь с MVC состоит в том, что существует так много разных типов MVC, что просто сказать «MVC» не очень много значит: когда говорят о MVC и Java, многие на самом деле ссылаются на MVC «модель 2» от Sun, но это далеко не всегда так.

Ваш случай может быть вариацией HMVC / PAC, но я не могу сказать наверняка, потому что вы вставили только имена, связанные с представлением: HVMC был независимо обнаружен программистами, не знавшими о гораздо более старой методике PAC , PAC является более строгим подмножеством HMVC, поскольку в PAC представление не может регистрировать обратные вызовы непосредственно в модели (каждое уведомление должно проходить через контроллер, а в HVMC в некоторых случаях контроллер может быть обойден).

200KLOC кодовая база, где везде находится PAC (так что более строгое подмножество HMVC).

Вы должны знать, что если вы действительно используете какой-либо вариант MVC, это не «плохой дизайн», поскольку он работает очень хорошо, но, конечно, это не «OO». В настоящей ОО-конструкции объекты знают, как рисовать себя, а MVC по определению отделяет представление от ваших объектов, что вовсе не является ОО. На самом деле это анти-тезис ОО. На эту тему есть отличные статьи, которые можно найти в Google. (Короче говоря, разделение может быть очень хорошей вещью, но разделение не подразумевает "OOness").

В дополнение к этому, как правило, не проблема быть «совсем не OO», потому что 99% программ на Java не являются OO: это прославленные процедурные программы, написанные на языке, который может использоваться для выполнения ОО, но обычно это не так.

Кстати, если вы посмотрите в Википедии список языков, для которых была сделана реализация MVC, вы увидите, что многие из них на самом деле не являются языками OO (даже не гибридными языками OO).

1 голос
/ 04 марта 2010

В этом сценарии есть много возможностей:

  • Model-View-Controller
  • Презентация-абстракция-контроль
  • Model View Presenter
  • Модель просмотра viewmodel
  • Многоуровневая архитектура (часто трехуровневая)
  • Сервис-ориентированная архитектура
  • Голые предметы

См. статью для получения дополнительной информации.

0 голосов
/ 04 марта 2010

Контроллер модельного представления.

0 голосов
/ 04 марта 2010

Возможно, вы захотите рассмотреть Наблюдательский паттерн , просто мысль

0 голосов
/ 04 марта 2010

Может быть частью реализации Model View Controller .

Другие связанные шаблоны

0 голосов
/ 04 марта 2010

Похоже, вы используете старый добрый шаблон MVC (Модель / Представление / Контроллер), в котором вычисление и рендеринг данных разделены. Тот факт, что виды в данном случае кажутся окнами Swing, не имеет значения - это могут быть JSP или выдержки из Excel ...

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