一、MVVM框架介紹
MVVM框架是一種新的開發模式,它將視圖(View)、數據模型(Model)、以及視圖控制器(ViewModel)分離,每個組件各司其職,更易於維護。其中,ViewModel是連接視圖和數據模型的橋樑,對外提供數據接口,並且不持有視圖的引用,保證了視圖和數據的獨立性,使得開發者更靈活、更高效的進行應用開發。
二、MVVM框架實踐
在實踐MVVM框架之前,需要先在Android Studio中添加以下依賴庫:
dependencies { def lifecycle_version = "2.4.0" implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version" implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version" implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version" }
在MVVM框架中,視圖(Activity, Fragment)通過ViewModel來實現與數據模型的交互,ViewModel提供數據接口給視圖使用,如下所示:
public class MyViewModel extends ViewModel { private MutableLiveData mText = new MutableLiveData(); public LiveData getText() { return mText; } public void setText(String text) { mText.setValue(text); } }
在ViewModel中使用LiveData來存儲數據,LiveData會在數據發生改變時及時通知觀察者,並且不會因為視圖的生命周期變化而產生內存泄漏的問題。
在視圖中,可以通過ViewModelProviders來創建ViewModel實例,並且使用ViewModelProvider.of(this)方法來獲取ViewModel實例:
public class MainActivity extends AppCompatActivity { private MyViewModel myViewModel; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myViewModel = ViewModelProviders.of(this).get(MyViewModel.class); myViewModel.getText().observe(this, new Observer() { @Override public void onChanged(@Nullable String s) { // 在數據發生改變時更新UI TextView textView = findViewById(R.id.text_view); textView.setText(s); } }); } }
在視圖中,可以通過ViewModel實例直接獲取數據或者改變數據:
// 獲取數據 myViewModel.getText().getValue(); // 改變數據 myViewModel.setText("Hello, world!");
三、MVVM框架優勢
MVVM框架將視圖、數據模型、視圖控制器分離,使得每個組件各司其職,更易於維護;同時,ViewModel作為橋樑,保證了視圖和數據的獨立性,使得開發者更靈活、更高效的進行應用開發。此外,使用LiveData來存儲數據,保證了數據發生改變時及時通知觀察者,不會因為視圖的生命周期變化而產生內存泄漏的問題。
四、總結
本文針對MVVM框架進行了詳細介紹,並通過實踐介紹了在Android Studio中如何添加依賴庫,以及如何在視圖和ViewModel中進行數據交互。MVVM框架的優勢在於提高代碼的可維護性和可讀性,提高開發效率,是當前Android應用開發中的一種新型開發模式。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/286110.html