寫出高質量軟件是困難和復雜的:不僅僅是為了滿足需求,還應該是健壯的,可維護的,可測試的,并且足夠靈活以適應成長和變化。這就是洋蔥架構出現(xiàn)的原因,它代表一組優(yōu)秀的開發(fā)實踐,用來開發(fā)任何的軟件應用都是一個不錯的方式。
洋蔥架構,也成為整潔架構(The Clean Architecture),用來構建具有如下特點的系統(tǒng):
1. 獨立的Frameworks
2. 可測試
3. 獨立的UI
4. 獨立的數(shù)據(jù)庫
5. 獨立的任意外部服務(代理)
看到這張圖,你應該能理解為什么稱其為洋蔥架構了:D, 沒錯,這就是它的原理圖。注意,并不是只能使用4個圓環(huán),重點在于這里的依賴原則:代碼依賴是從外向內(nèi)的,內(nèi)環(huán)中的代碼不應該知道外環(huán)中的任何東西。
這里有一些相關的詞匯可以幫助更好的理解和熟悉這種方式: