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