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