寫出高質(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)的詞匯可以幫助更好的理解和熟悉這種方式:
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26