MVVM框架主要的特点就是低耦合,对于不同的view,model可以复用。 目前android 的MVVM框架主要是使用 databinding实现双向数据绑定,来降低耦合度。 首先是用databinding来实现mvvm框架,下面是一个我自己总结的使用databinding来实现mvvm框架的简单示例。 之后是我使用Viewbinding实现的框架,可以说用起来更加的灵活便捷。 model类,这个类主要是一些与视图相关的业务逻辑的处理,对于一些需要复用并且实现不同逻辑的model类,可以使用回调的方式来执行不同的业务逻辑。例如下面代码中的titlemodel, 需要更新数据的时候,需要调用n 在Android开发中,MVVM(Model-View-ViewModel)架构是一种流行的设计模式,它强调了应用的低耦合性,并且使代码更加清晰和易于测试。MVVM通过数据绑定技术,实现了视图(View)与模型(Model)的双向绑定,从而减少了手动设置UI与数据之间的关联工作。 在Android中,MVVM框架主要依赖于Data Binding库来实现这种绑定。Data Binding允许开发者声明式地定义UI与数据模型之间的关系,当模型的数据改变时,视图会自动更新,反之亦然。以下是一个简单的使用Data Binding实现MVVM的示例: ```java <layout> <data> <variable name="viewModel" type="com.example.MyViewModel" /> </data> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:text="@{viewModel.title}" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> </layout> ``` 在这个例子中,`MyViewModel`是ViewModel类,`title`是Model中的一个属性,通过`@{viewModel.title}`,我们实现了TextView文本与Model的双向绑定。 然而,随着Android Jetpack的推出,ViewBinding成为了另一种替代Data Binding的UI绑定方式。ViewBinding提供了更简洁的API,减少了模板代码,并且在某些情况下性能更好。相比Data Binding,ViewBinding不支持表达式语言,但其简单性和直接性使得它在许多项目中受到欢迎。使用ViewBinding的例子如下: ```java public class MainActivity extends AppCompatActivity { private ActivityMainBinding binding; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); binding = ActivityMainBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); MyViewModel viewModel = new MyViewModel(); binding.setViewModel(viewModel); viewModel.setTitle("Hello World"); } } ``` 在这个例子中,`ActivityMainBinding`是自动生成的类,包含了布局中的所有视图引用,通过`binding.setViewModel(viewModel)`,我们设置了ViewModel,然后可以直接通过`viewModel.title`更新UI。 Model类在MVVM中扮演着关键角色,它封装了业务逻辑和数据。例如,`TitleModel`不仅包含了标题数据`title`,还定义了一个接口`OnClick`用于处理点击事件。通过回调,Model可以在适当的时候通知View执行相应的操作,如更新UI或执行其他业务逻辑。 在`TestActivityModel`中,我们创建了一个`TitleModel`实例并设置了它的点击事件监听器。当用户点击按钮时,对应的回调方法会被调用,如`onBack`和`onAction`。 MVVM框架结合Data Binding或ViewBinding能够帮助开发者编写更加整洁、可维护的代码。Data Binding提供强大的表达式支持,而ViewBinding则简化了绑定过程。选择哪种方式取决于项目需求和个人偏好。无论选择哪种,重要的是理解MVVM的核心理念——分离关注点,降低视图与业务逻辑的耦合,提高代码的可测试性和可维护性。


剩余7页未读,继续阅读






























- 粉丝: 9
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- YKSwiftNetworking-Swift资源
- 人工智能和儿童右脑开发趋势探究.docx
- matlab-Matlab资源
- 可编程控制器在电气控制中的应用与分析黄立忠.docx
- “教学中的互联网搜索”教学设计(识字).doc
- WebGIS架构棉花估产辅助决策系统的设计方案.doc
- 《机器学习所需的数学基础知识相关源码》
- 关于广电网络工程项目管理研究.docx
- 2016年“专转本”计算机应用基础统一测验试题(含答案).docx
- 2017年下半年-网络工程师-真题与答案详解.docx
- 企业大数据分析平台案例.pptx
- 《JAVA语言程序设计》期末考试考试卷及答案.doc
- 楼盘项目管理广告策划书.doc
- 现代商业中计算机数据挖掘技术的应用.docx
- 我国信息化发展经验-建国60周年看我国信息化发展.docx
- Mcontroller-v7-FanciSwarm-机器人开发资源



评论0