MVVM và MVC trong Android.

MVC, và MVVM là 2 mô hình thông dụng khi phát triển phần mềm di dộng. Trong bài viết này, mình sẽ giới thiệu với các bạn 2 mô hình Model View Controller (MVC) và Model View View-model (MVVM). 2 Mô hình này sẽ giúp bạn phát triển phần mềm 1 cách tốt hơn, dễ dàng unit test và mở rộng^^.

  1. Mô Hình MVC
    1. Tổng quan mô hình mvc  3  thành phần chính : 
      1. Model
      2. View
      3. Controller
    2. Model  đại diện cho các lớp đối tượng miêu tả business  dataĐồng thời  cũng chứa các business logic để thay đổi dữ liệu  được dùng. 
    3. View  tầng giao diệnĐưọc xây dừng bằng XML, HTML, CSS … View sẽ được render dữ liẹu đã được xử  từ tầng controller tàng này không xử  event khi người dùng tap vào màn hình, …. 
    4. Controller  tầng xử  các eventrequest dược gửi đếnĐiều kiển tổng thể ứng dụngXử  dữ liệu của người dùng qua Model rồi trả ngược về tầng View để phản hồi kết quả cho người dùng. 
    5. Đánh giá:
      1.  1 mô hình tách Tầng view  tầng model thể dễ dàng unit test tầng model. 
    6. Hạn chế : 
      1. Controller dính với View. => View to ra thì controller cũng to dần 
      2. Controller  sử dụng API. Khó unit test 
    7.  dụ đơn giản về mô hình MVC:

                Project thêm sinh viên vào ListView: 

              View: 

             

Model

           

Controller

2.  Mô Hình MVVM

  1.   Gồm 3 thành phần chínhViewModelViewModel. 
  2. ModelGiống với MVC. Tầng chứa các logic về busness  tính chấtdữ liệu của đối tượng. 
  3. ViewTầng giao diện giống với MVC. Được liên kết với View Model qua các observers. 
  4. ViewModelTầng liên kết giữa Model  View chịu trách nhiệm đưa dữ liệu từ ModelĐồng thời  tạo ra các callback để update View. 
  5. Đánh giá :  
    1.   thể unit test dễ dàng. 
    2. View không bị phụ thuộc vào ViewModel. Quan hệ 1 – nhiều 
    3. Dễ mở rộng khi View to lên nhưng ViewModel không bị ảnh hưởng. 
  6. Ví dụ đơn gian
    1. View: 
    2. Model:
    3. View Model 

3. Tạm kết.

Mô hình MVVM đều tốt hơn MVC trong việc chia nhỏ ứng dụng thành các modular, các component đơn mục đích, không bị phụ thuộc có thể dễ dàng maintain và phát triển mở rộng.

 

Add a Comment

Your email address will not be published.