关于项目架构的知识

2021-02-18  本文已影响0人  丶皮蛋菌

1.MVC、MVP、MVVM模式

MVC(Model、View、Controller)

MVC是比较直观的架构模式,最核心的就是通过Controller层来进行调控,首先看一下官方提供的MVC示意图:


image.png

MVP(Model、View、Presenter)

MVP模式是MVC模式的一个演化版本,其中Model与MVC模式中Model层没有太大区别,主要提供数据存储功能,一般都是用来封装网络获取的json数据;View与MVC中的View层有一些差别,MVP中的View层可以是viewController、view等控件;Presenter层则是作为Model和View的中介,从Model层获取数据之后传给View。


image.png

从上图可以看出,从MVC模式中增加了Persenter层,将UIViewController中复杂的业务逻辑、网络请求等剥离出来。

MVVM(Model、Controller/View、ViewModel)

合理的运用架构模式有利于项目、团队开发工作,大师到底选择哪个设计模式,哪种设计模式更好,就像本文开头所说,不同的设计模式,只是让不同的场景有了更多的选择方案。根据项目场景和开发需求,选择最合适的解决方案。

2.关于RAC你有怎样运用到解决不同API依赖关系

信号的依赖:使用场景是当信号A执行完才会执行信号B,和请求的依赖很类似,如果请求A请求完毕才执行请求B,我们需要注意信号A必须要执行发送完成信号,否则信号B无法执行

//这相当于网络请求中的依赖,必须先执行完信号A才会执行信号B
//经常用作一个请求执行完毕后,才会执行另一个请求
//注意信号A必须要执行发送完成信号。否则信号B无法执行
RACSignal *concatSignal = [self.signalA concat:self.signalB];
//这里我们是对这个拼接信号进行订阅
[concatSignal subscribeNext:^(id x) {
    NSLog(@"%@",x);
}];

3.@weakify和我们宏定义的WeakSelf有什么区别?

@weakify可以多参数使用

4.微服务架构摄像。

微服务架构具有以下优势:

上一篇 下一篇

猜你喜欢

热点阅读