前面提到的單例模式,委托模式,觀察者模式,工廠模式等等都是局部的設計模式.....這個沒有什么爭議....
而MVC以及其一系列的設計模式...就我個人的觀點來說...也應該屬于宏觀架構設計里面....但是很多面試的試題會把兩者混為一談,,
比方,問你"除了MVC你還知道哪些設計模式?"...我的觀點應該是"MVVM,MVP,VIPER"這些...但是很多網絡上的答案都是給的"單例模式,委托模式"等等什么的....這點我也比較困惑...
不過,這一章要講的是毫無爭議的宏觀架構設計:
分層架構設計...
具體如下:
- 表示層
UIKit Framework
用戶與系統的交互的組件的集合. - 業務邏輯層
系統的核心業務處理層 - 數據持久層
SQLite API, Core Data, HTTP等網絡通信技術
用于訪問信息層 - 信息系統層
SQLite DB,文件系統,云服務
系統的數據來源
補充1.
我們再開發一個企業級系統的順序應該是,先信息系統層,然后數據持久層,然后業務邏輯層,最后是表示層
補充2.
開發者可以通過靜態連接庫(.a + .h)文件或者框架(Framework)把自己的業務邏輯層和數據持久層封裝起來,分享給其他開發者.
其中靜態連接庫中不能有swift代碼,只能用objective-c
補充3.
(可以忽略掉下面的補充...)
(這種東西一般面試不會問到的....其他地方也很少見到有這種分類,這些符號應該都來自于<ios開發指南這本書>..算是一中學習思路了吧....可以更好理解一下靜態庫和框架,,已經swift和oc混合如何開發...)
根據使用的語言不通可以分為4個種類:
(業務邏輯和數據持久層用同一種語言,0表示oc,s表示swift)
ooo, sss, soo, oss
而代碼組織形式的不同,又可以有3種:
P表示project,同一工程分層
WL表示workspace library
WF表示workspace framework
所以這些可以組合成10種結果:
(其中用靜態庫的業務邏輯和數據持久層不能用swift)
POOO; PSSS; PSOO; POSS
WLOOO; WLSOO
WFOOO; WFSSS ; WFSOO; WFOSS