Архитектура: Entity-Boundary-Interactor

Entity-Boundary-Interactor (EBI)


Выведена гуру архитектуры приложений (и, в частности, Java приложений), Робертом Мартином (Robert C. Martin).

Состоит из 3 ключевых объектов со своими ролями и задачами:

  • Entity. Хранит данные и реализует бизнес-логику приложения, непосредственно связанную с сущностью. Каждый Entity обязательно должен быть представлен идентификатором (id). Эффект от изменения Entity должен быть виден на всех уровнях приложения, а так же сохраняться на всех этапах работы.
    Такой подход к реализации Entity позволяет избежать эффект “слабой сущности” - считается анти-паттерном, при котором вся бизнес-логика работы сущности перенесена из Entity в другие области приложения, что усложняет транспарентность и переносимость приложения.

  • Boundary. В терминологии Java - это интерфейс; для Rust это будет Trait. Все элементы приложения должны работать “сквозь” данные границы.

  • Interactor. Де-факто, кумулятивный элемент, который объединяет в себе обработку события, затрагивающего несколько Entity. Тем самым, операция изменения выполняется как атомарная и логика не разбросана по различным Entity. Как правило, реализация завязана на сценарии, при которых одной Entity бизнес-логика не ограничена. С современной точки зрения чем-то напоминает уровень сервисов (Domain и Application Services).

Литература

2002 – Robert C. Martin – Agile Software Development, Principles, Patterns, and Practices
2002 – Robert C. Martin – Single Responsibility Principle
Eclipse Process Framework – Entity-Control-Boundary Pattern
Jon Pearce – Implementing Use Cases
2012 – Robert C. Martin – Clean Architecture (NDC 2012)
2014 – Adam Bien – How to tackle JEE
2014 – Ali Parvini – Model View Controller vs Boundary Control Entity

 Comments
Comment plugin failed to load
Loading comment plugin