Шаблон ЕЦБ - что такое граница? - PullRequest
5 голосов
/ 24 января 2012

Я только что посмотрел презентацию дяди Боба о программном обеспечении для архитектуры:

http://www.cleancoders.com/codecast/clean-code-episode-7/show

Он говорит о модели ECB (сущности - контроллеры - границы)

Он настаиваетна тот факт, что все программное обеспечение должно быть первичным, хотя и в целом в случаях использования.

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

Я был заинтригован термином «Границы», поэтому нашел это объяснение:

http://process.osellus.com/sites/wiki/OpenUP%20DSDM/Wiki%20Pages/Guidance%20-%20Entity-Control-Boundary%20Pattern.aspx

Здесь мы видим, что границы относятся к каждому механизму доставки, напримерформа для веб-механизма (MarketingCampaignForm) и т. д. *

Итак, мой вопрос:

Нужно ли знать сотрудникам о типе механизма доставки, который будет использоваться и который настолько противоречит точке зрения дяди Боба?зрения?

Или они должны быть простыми POJO, представляющими простую структуру данных, которая будет разделена между внутренней системой и механизмом доставки;и содержащий ввод от пользователя и вывод от контроллеров во внутренней системе?

1 Ответ

4 голосов
/ 25 января 2012

Возможно, немного растянуто (пуристы меня возненавидят), но вы можете думать о границе как концептуально похожей на представление в MVC, хотя это более общая концепция: если ваш Например, система предоставляет REST API, это нельзя назвать представлением (и вы не реализуете MVC, fwiw), но в целом это интерфейс вашей системы по отношению к внешнему миру.

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

С Eclipse EPF :

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

...