前面提到的单例模式,委托模式,观察者模式,工厂模式等等都是局部的设计模式.....这个没有什么争议....
而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