[IT] EBI 架構
EBI 架構全名是 Entity-Boundary-Interactor Architecture,第一次由 Robert C. Martin 在他乾淨架構(Clean Architecture)中的演講中提到。 然而,EBI 架構正式的發布是來自 Ivar Jacobson 在 1992 年所出版的 《物件導向的軟體工程:用例驅動方法(Object-Oriented Software Engineering: A use case driven approach)》。當時,Jacobson 實際上稱之為 Entity-Interface-Control,爾後才進行更名,為了避免將 Interface 與程式語言中的 Interface 或 User Interface 混淆;也避免將 Control 與 MVC 中的 Controller 混淆。 Entity 實體 Entity objects 持有所有系統使用的數據且持有所有與數據耦合的行為。每個 Entity object 代表一個與問題領域相關的概念,同時具備身份(identity)與永久性(persistence)。Jacobson 告訴我們,Entity object 應該要包含那些會因 entity 自身變化而變化的邏輯,也就是說,如果它持有的數據結構改變,則對該數據的操作也將需要變化,因此它們應該位於 entity中。 值得注意的是,Jacobson在1992年就已經發出了一個警告: Beginners may sometime only use entity object as data carriers and place all dynamic behaviour in control objects […]. This should, however be avoided. […] Instead, quite a lot of behaviour should be placed in the entity objects. - Ivar Jacobson 1992, pp. 134 初學者有時可能只將實體物件用作數據載體,並將所有動態行為放在控制物件中[…]。然而,這樣的做法應該避免[…]。相反,應該將相當多的行為放在實體物件中。 - 伊瓦爾‧雅各布森 1992, pp. 134 ...