MVVM模式的使用

最近项目都换成了MVVM的模式,这里说一下整的思路。

这个就是MVVM,把控制器剥离出来,减轻控制器的负担,简化代码提高代码质量,是这种模式的主要作用。

流程:

1.一个模块创建一个ViewModel,viewModel贯穿VC和View,是他们之间沟通的桥梁。


这是ViewModel的.h,是创建信号的,信号分两种,Command一般用于接口调用,Subject用于事件传递。在.m里面写你接口的解析,参数之类的。

2.创建控制器,控制器要初始化你的ViewModel。

3.创建View视图,View里面要把基本上所有的操作都完成,除了非得用控制器的代码可以写在VC中,比如页面跳转,其他的都要写在View里面。像UITableView的代理和视图创建都写在view里面。

4.信号传递,例如:[self.viewModel.twpRefreshCommand execute:nil];这是调取刷新接口的信号,执行此操作,ViewModel里面的刷新的信号会再次调用一次,也就是刷新一次。

[self.twpOrderToBuyClickSubject sendNext:self.detailModel];这个是事件传递的信号,发出这个信号,需要在另一个地方接受事件,像代理一样和Block一样,好处是不用写很多代码,View和VC都可以互相传递,(功能类型通知,但不用担心没有移除通知)。可以传递参数,sendNext:(这里面写参数哦)。

//接受信号
    [self.viewModel.twpOrderToBuyClickSubject subscribeNext:^(TWCOrderDetailModel *detailModel) {
        @strongify(self);
        这里面写事件的处理
       
    }];

注意:VC和view要共用一个ViewModel,viewModel在VC中创建,传递到view中。后续继续更新。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MVVM(Model-View-ViewModel)是一种软件设计模式,常用于开发用户界面。它的优点和缺点如下: 优点: 1. 分离关注点:MVVM将应用程序的逻辑、数据和视图分离开来,使得代码更加清晰和可维护。模型(Model)负责处理数据和业务逻辑,视图(View)负责展示数据和用户交互,而视图模型(ViewModel)则充当模型和视图之间的桥梁。 2. 可测试性:MVVM通过将视图逻辑从视图中抽离出来,使得视图可以更容易地进行单元测试。视图模型可以通过数据绑定来模拟和验证视图的行为,从而提高代码的可测试性。 3. 可复用性:MVVM鼓励重用已有的视图和视图模型,通过数据绑定和命令绑定实现视图和视图模型之间的解耦。这样一来,我们可以在不修改已有代码的情况下,将不同的视图与不同的视图模型进行组合,从而实现高度可复用的界面组件。 4. 前后端分离:MVVM支持前后端分离开发模式,使前端开发人员专注于界面逻辑的实现,后端开发人员专注于数据处理和业务逻辑的实现,从而提高开发效率。 缺点: 1. 学习曲线:相较于传统的MVC模式MVVM模式需要开发人员掌握更多的概念和技术,如数据绑定、命令绑定等。因此,对于初学者来说,学习和理解MVVM可能需要一定的时间和精力。 2. 过度设计:在某些场景下,MVVM模式可能会导致过度设计。因为视图模型和视图之间的解耦有时候会引入额外的复杂性,特别是对于简单的界面来说,采用MVVM模式可能显得过于繁琐。 3. 数据绑定性能:MVVM依赖于数据绑定机制来实现视图与视图模型之间的数据同步。在一些性能要求较高的场景下,由于数据绑定机制的实现机制,可能会对应用程序的性能产生一定的影响。 需要注意的是,MVVM并不适用于所有的开发场景,开发人员需要根据具体情况选择合适的设计模式

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值