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