众所周知框架是项目的骨架,根据项目的需求选择合适的框架是非常重要的事情,接下来我们来看一看日常开发中我们常见的几种框架的功能以及特点;
MVC(Model - View - Controller)
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
理想状态下,MVC的架构会实现以下流程:
理想状态下,MVC的架构实现形式理想还是非常的美好的,然而实际开发中,随着版本功能的不断迭代,会让架构发生变形,ViewController会越来越沉重,回看自己写的控制器,你会发现里面有网络层、UI层、代理、业务逻辑、还有一些其他的功能模块,然而,控制器的作用本应该是将不同的View和不同的Model组织在一起,替双方传递消息,而不是去处理一些“奇怪”的操作。
然而,惯用的“setModel:”方法传递数据,这样会造成耦合性,对重用性和灵活性造成压力;
耦合度(Coupling)是对模块间关联程度的度量。耦合的强弱取决与模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。
模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差。
解耦建议
- 对模块优化封装,尽量保持模块的独立性
- 细化责任划分,谁的事情谁来处理
- 选择更合适的框架架构
MVP (Model - View - Presenter)
MVP 全称:Model-View-Presenter ;MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方:Controller/Presenter负责逻辑的处理,Model提供数据,View负责显示。
MVP-面向协议编程,它可以根据产品的需求,写出对应需求的接口,通过接口找响应的发起者和接收者;
MVP的优势:
- 以需求驱动代码,思路清晰
- 耦合度降低显著
- 通讯相对简单
缺点:
由于对视图的渲染放在了Presenter中,所以视图和Presenter的交互会过于频繁。还有一点需要明白,如果Presenter过多地渲染了视图,往往会使得它与特定的视图的联系过于紧密。一旦视图需要变更,那么Presenter也需要变更了。
MVVM (Model-View-ViewModel)
MVVM是Model-View-ViewModel的简写。它本质上就是MVC 的改进版。MVVM 就是将其中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。
双向绑定是MVVM的最大特色
通过Block代码块绑定依赖,方便数据更新,只需要回调Block,就可以在代码块绑定的视图中获取到最新数据,这样的方式低耦合,可重用性高。
以上~
网友评论