美文网首页
简单谈下设计模式

简单谈下设计模式

作者: 羊妞麻麻 | 来源:发表于2018-09-19 15:28 被阅读14次

    1、MVC模式

    Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。
    View(视图)是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。
    Controller(控制器)是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。

    在 iOS 应用中日益增长的重量级视图控制器的问题。在典型的 MVC 应用里, 许多逻辑被放在 View Controller 里。

    2、MVVM

    MVVM:它其实是一个 MVC 的增强版,并将表示逻辑从 Controller 移出放到一个新的对象里,即 View Model。
    在 iOS 上使用 MVVM 的动机,就是让它能减少 View Controller 的复杂性并使得表示逻辑更易于测试。

    ViewModel: 它位于 View/Controller 与 Model 之间。

    最终,ViewController 将会变得非常轻量级

    对比一下两者的好处:

    1、由于展示逻辑被抽取到了 viewModel 中,所以 view 中的代码将会变得非常轻量级;

    2、由于 viewModel 中的代码是与 UI 无关的,所以它具有良好的可测试性;

    3、对于一个封装了大量业务逻辑的 model 来说,改变它可能会比较困难,并且存在一定的风险。在这种场景下,viewModel 可以作为 model 的适配器使用,从而避免对 model 进行较大的改动。

    我们只要将 MVC 中的 controller 中的展示逻辑抽取出来,放置到 viewModel 中,然后通过一定的技术手段,来同步 view 和 viewModel ,就完成了 MVC 到 MVVM 的转变。

    3、VIPER

    1452153564205784.png

    ·交互器 -- 包括关于数据和网络请求的业务逻辑,例如创建一个实体(数据),或者从服务器中获取一些数据。为了实现这些功能,需要使用服务、管理器,但是他们并不被认为是VIPER架构内的模块,而是外部依赖。

    ·展示器 -- 包含UI层面的业务逻辑以及在交互器层面的方法调用。

    ·实体 -- 普通的数据对象,不属于数据访问层次,因为数据访问属于交互器的职责。

    ·路由器 -- 用来连接VIPER的各个模块。

    Model 逻辑通过把实体作为最小的数据结构转换到交互器中。

    Controller/Presenter/ViewModel的UI展示方面的职责移到了Presenter中,但是并没有数据转换相关的操作。

    VIPER是第一个通过路由器实现明确的地址导航模式。

    相关文章

      网友评论

          本文标题:简单谈下设计模式

          本文链接:https://www.haomeiwen.com/subject/rbyinftx.html