常用项目架构模式有MVC、MVP、MVVM等。
一、MVC
苹果传统使用框架,简单易理解和使用,不过弊端是随着项目业务不断增加会导致控制器C变得臃肿难以维护。
二、MVP
在传统MVC架构基础上把ViewController也当做View,并将ViewController里面的业务逻辑网络请求等功能迁移到presenter层上去,通过泛型模式将p层和view层解耦,这样相同逻辑就可以绑定不同的视图view,方便业务的扩展和功能的复用。不过因为是单向数据绑定,所以在有model数据更新的时候,需要手动更新视图,这里可以借助观察者模式进行绑定更新操作,达到自动更新目的。
三、MVVM
MVVM其实和MVP目的是一样也是为了缓解C端的代码的压力,新增的VM其实和MVP中的P类似,不过MVVM这里VM和View ,VM和Model数据层是双向绑定的,其实利用kvo和notification也能做到这点,不过写起来不那么优雅,毕竟优雅的是使用函数响应式编程框架ReactiveCocoa可以更好的优雅实现,有一定的学习成本。
总结:
项目架构万变不离其宗,单一职责,开放关闭原则,里氏替换原则,依赖倒置原则,迪米特法则(最少知道原则),接口分离原则 六大原则,还有其他的一些比如swift上主要使用面向接口编程,还有就是要优先使用组合而非继承等。所以在使用架构上的使用其实也是要看具体项目的规模复杂度等,适合的才是最好的。
网友评论