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