在 Android 开发中,MVC(Model-View-Controller)、MVP(Model-View-Presenter)和 MVVM(Model-View-ViewModel)是三种常见的架构模式。每种模式都有其独特的优缺点和适用场景。以下分别通过结构、工作流程、优缺点,对这三种模式详细比较和解释的整理。
1. MVC(Model-View-Controller)
结构
- Model: 负责应用程序的数据和业务逻辑。
- View: 负责显示数据(UI),并向用户展示信息。
- Controller: 处理用户输入,更新 Model 和 View。
工作流程
- 用户与 View 交互(例如,点击按钮)。
- View 将用户输入传递给 Controller。
- Controller 更新 Model。
- Model 通知 View 更新(通常通过回调或观察者模式)。
优点
- 简单易懂,适合小型应用。
- 直接的用户交互和数据更新。
缺点
- 随着应用复杂度增加,Controller 可能变得臃肿。
- View 和 Controller 之间的耦合度较高。
- MVC 示例中,Activity 直接与 Model 和 View 交互,适合简单的应用。
MVC 示例:
在 MVC 模式中,Activity 充当 Controller,负责与 Model 和 View 交互。
// Model
class CounterModel {
var count: Int = 0
}
// MainActivity (Controller)
class MainActivity : AppCompatActivity() {
private lateinit var model: CounterModel
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
model = CounterModel()
val countTextView: TextView = findViewById(R.id.countTextView)
val incrementButton: Button = findViewById(R.id.incrementButton)
incrementButton.setOnClickListener {
model.count++
countTextView.text = "Current Count: ${model.count}"
}
}
}
布局文件 (res/layout/activity_m