玩安卓 0 到 1 的 Android 应用程序架构思考
2023-09-01 10:53:02
玩安卓,架构的再思考##
在第一篇文章中,我们搭建了 BaseActivity 和 BaseFragment,不清楚的可以去看下第一篇文章:玩安卓从 0 到 1 之总体概览。里面将一些公共用到的方法抽取了出来,还可以说是 View 的一个基类。在第二篇文章中,我们搭建了网络框架 Retrofit 和 RxJava。我们发现每个页面都要网络请求数据,所以我们就将网络请求单独封装成了一个网络框架,以后如果我们不想用 Retrofit 的话,我们就可以轻易切换到其它框架。
一开始我就想好了,写这篇文章一定要将自己踩过的坑都填上。不然怎么对得起自己这几个月的学习呢?随着我继续深入了解 Android 的框架之后,突然想改变自己最初的想法。
我们不应该为了扩展而扩展,更不能因为需求而需求。这是我一开始犯的错。导致整个项目耦合度极高,然后就感觉很乱,很难维护。所以我们一上来就需要有个清晰的架构,虽然我们写的小项目可能用不到,但是我们也可以养成一个好习惯。
##MVC、MVP、MVVM##
MVC 概述:###
MVC(Model-View-Controller)模式是软件工程中一种经典的架构设计模式。它将应用程序划分为三个独立的组件:模型、视图和控制器。
- 模型:模型负责管理应用程序的数据和业务逻辑。
- 视图:视图负责将数据呈现给用户,并接收用户的输入。
- 控制器:控制器负责协调模型和视图之间的交互。
MVC 模式的主要优点是其高可维护性和可扩展性。通过将应用程序划分为独立的组件,我们可以轻松地修改或替换其中一个组件,而不会影响其他组件。
MVP 概述:###
MVP(Model-View-Presenter)模式是 MVC 模式的扩展,它将控制器组件拆分为两个独立的组件:Presenter 和 View。
- Presenter:Presenter 负责处理应用程序的业务逻辑,并与模型进行交互。
- View:View 负责将数据呈现给用户,并接收用户的输入。
MVP 模式的主要优点是其高可测试性和可维护性。通过将应用程序划分为更小的组件,我们可以轻松地测试和维护每个组件。
MVVM 概述:###
MVVM(Model-View-ViewModel)模式是 MVP 模式的进一步扩展,它将 Presenter 组件拆分为两个独立的组件:ViewModel 和 View。
- ViewModel:ViewModel 负责处理应用程序的业务逻辑,并与模型进行交互。
- View:View 负责将数据呈现给用户,并接收用户的输入。
MVVM 模式的主要优点是其高可重用性和可维护性。通过将应用程序划分为更小的组件,我们可以轻松地重用 ViewModel 组件,并维护每个组件。
个人思考:##
项目中应用到什么设计模式
- 单例模式
单例模式是一种设计模式,它确保一个类只有一个实例。在 Android 应用程序中,单例模式经常用于管理应用程序的全局状态,例如应用程序的配置信息或用户数据。
- 观察者模式
观察者模式是一种设计模式,它允许一个对象(发布者)将消息发送给多个对象(订阅者)。在 Android 应用程序中,观察者模式经常用于实现事件处理。例如,当用户点击一个按钮时,按钮可以将一个事件发送给应用程序中的其他组件,从而触发相应的动作。
- 适配器模式
适配器模式是一种设计模式,它允许一个类(适配器)将一个类的接口转换成另一个类的接口。在 Android 应用程序中,适配器模式经常用于将一个库或框架的接口转换成应用程序的接口。例如,我们可以使用适配器模式将一个第三方库的网络请求接口转换成应用程序的网络请求接口。
- 工厂模式
工厂模式是一种设计模式,它允许一个类(工厂)创建另一个类的实例。在 Android 应用程序中,工厂模式经常用于创建应用程序中的对象。例如,我们可以使用工厂模式创建应用程序中的视图或控制器对象。
总结:##
在本文中,我们探讨了 Android 应用程序的架构设计,包括 MVC、MVP 和 MVVM 模式。我们还讨论了在项目中应用到的设计模式,包括单例模式、观察者模式、适配器模式和工厂模式。希望本文能够帮助您构建更加稳定,可扩展和易维护的 Android 应用程序。