Контроллер просмотра модели против объекта управления границами

Какая разница между MVC (Model View Controller) и BCE (Boundary Control Entity), я знаю, что эти два шаблона похожи, но есть разница, в чем разница?

Ответ 1

BCE vs. MVC vs. 3-Tier

BCE был опубликован Ivar Jacobson (Ericsson Co.) в 80 году с упором на разделение обязанностей элементов в объектно-ориентированных системах. MVC был опубликован компанией Trygve Reenskaug (XEROX Co.) в 70 году с упором на реализацию выбираемых пользовательских интерфейсов.

Ответ 2

Ниже приводится обсуждение ЕЦБ Адамом Биеном, в котором содержится различие между MVC и ECB. Адам говорит, что ЕЦБ является "прославленным MVC", и ECB чаще используется в бизнес-логике, тогда как MVC чаще используется в пользовательском интерфейсе.

Ответ 3

BCE - это то, как вы создаете разделенные компоненты, которые следуют принципу открытия/закрытия, инверсии зависимостей и разделению интерфейса. Это то, что вы хотите разработать ядро вашего приложения.

BCE состоит из комбинации следующих элементов: границы с другими компонентами, логические контроллеры и бизнес- объекты.

Каждая граница, которая состоит из двух интерфейсов:

  • Интерфейс ввода, отвечающий за раскрытие только тех методов бизнес-логики, которые должны быть известны другому компоненту (разделение интерфейса)
  • Выходной интерфейс, отвечающий за отсутствие связи между бизнес-логикой и реализацией конкретного компонента, скорее должен сделать так, чтобы логика определяла контракт, а другой компонент адаптировался к нему (инверсия зависимости + наблюдатель)

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

Каждый контроллер содержит логику для варианта использования. Это где специфическая логика приложения.

Объекты представляют бизнес-объекты, такие как счет, клиент, отчет и другие объекты домена. По сути, они являются структурами данных, но содержат код, который не является специфическим для конкретного варианта использования. Например: invoice.addItem().

Контроллер будет получать инструкции от входной границы координировать объекты, чтобы обновить состояние приложения, получить некоторый результат и отправить его через выходную границу.

Я не знаю MVC, поэтому я оставляю это как половину ответа