聊架構總離不開「領域驅動架構」,大多能聊到DDD(Domain-Driven Design),實際上早期思想EBI架構 1992年就誕生了。核心價值點在於:關注核心業務領域(高內聚),分離實現層(低耦合)。後續一些演變架構有:埠和介面卡架構、洋蔥架構、整潔架構、事件驅動架構。這一系列的架構演變,每個架構的核心思想了解下就好,不用糾結實現細節。
EBI 架構(Entity-Boundary-Interactor,實體-邊界-互動器)是Ivar Jacobson 在 1992 年就在他的著作 Object-Oriented Software Engineering: A use case driven approach中提出的。附上2012年來北京講座的照片,混個臉熟。
最早,Jacobson 把它叫做實體-介面-控制(Entity-Interface-Control),但是後來改成了 EBI,避免「介面」和程式語言中的結構「介面」混淆,以及「控制」和 MVC 中的「控制器」混淆。如下圖所示:
這個圖是不是很熟悉?沒錯,就是UML!Ivar Jacobson就是UML的三大創始人之一。
核心:
優點:
核心:
領域模型準確反映了業務語言,而傳統資料物件除了簡單setter/getter方法外,沒有任何業務方法,即失血模型,那麼DDD領域模型就是充血模型(業務方法定義在實體物件中)。優點:
核心:
優點:
業務應用和實現(技術)隔離。(面向介面程式設計)
洋蔥架構在業務邏輯中加入了一些在「領域驅動設計」中被識別出來的層次。如下圖:
核心:
優點:
Robert C. Martin(Uncle Bob)於2012年發表了整潔架構。這套架構是站在巨人的肩膀上,把MVC、EBI、埠介面卡、洋蔥架構、DDD融會貫通,形成了一套落地實踐方案。
Robert C. Martin有一份落地細節圖,如下:
核心:
優點:
縱觀EBI架構、DDD領域驅動設計、埠介面卡架構、洋蔥架構、整潔架構。完全沒有衝突,就是領域設計的完美落地歷史。一張圖歸納之:
==========參考===============
https://www.jianshu.com/p/d3e8b9ac097b
2008 – Jeffrey Palermo – The Onion Architecture: part 1
2008 – Jeffrey Palermo – The Onion Architecture: part 2
2008 – Jeffrey Palermo – The Onion Architecture: part 3
2013 – Jeffrey Palermo – The Onion Architecture: part 4 – After Four Years
https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html
如果你覺得本文對你有點幫助的話,記得在右下角點個「推薦」哦,博主在此感謝!