MVC和MVVC的理解?
一个典型的MVC设置。Model呈现数据,View呈现用户界面,而View Controller调节它两者之间的交互,虽然View和View Controller是技术上不同的组件,但它们几乎总是手牵手在一起,成对的。在典型的MVC应用里,许多逻辑被放在View Controller里,使得视图控制器越来越沉重,它们中的一些确实属于View Controller,但更多的是所谓的“表示逻辑(presentation logic)”,以MVVM属术语来说,就是那些将Model数据转换为View可以呈现的东西的事情,例如将一个NSDate转换为一个格式化过的NSString。MVVM:一个MVC的增强版,我们正式连接了视图和控制器,并将表示逻辑从Controller移出放到一个新的对象里,即View Model。MVVM听起来很复杂,但它本质上就是一个精心优化的MVC架构,而MVC你早已熟悉。在iOS上使用MVVM的动机,对我来说,无论如何,就是它能减少View Controller的复杂性并使得表示逻辑更易于测试。本质上就是将viewDidLoad中的表示逻辑放入我们的View Model里了。此时,我们新的viewDidLoad就会非常轻量,带来更轻量的View Controllers。
各架构有什么特点?
MVCS拆胖Controller,MVVM拆胖Model,VIPER什么都拆
设计APP架构时都需要考虑什么问题?
(根据要解决的问题<用户登陆退出+不同用户数据交流+用户数据存储+>——>确定需要的模块<连接池实现的链接管理模块+数据交换模块+带有缓冲区的数据库+>——>细化模块越小越独立越好——>分层整理生成架构图)
架构本质?
1、各模块高度独立!
2、拒绝耦合,让各个类之间的互相调用(桌子与抽屉分不开,床单与床垫分不开),不同模块之间相互关系的程度越小越好!
对于一个app的网络层,你在设计时,你会考虑哪些问题?
对于一个app的持久层,如果让你直接用sqlite,你如何设计版本迁移方案?
如何创建私有Pod?
工作中你会采用哪些手段降低代码耦合度?又会采取哪些方法解耦?(接口参数越少越好、单元测试)