Mô hình mvp trong android

     

Nội dung bài xích viết

Mô hình MVP vào Android (Model – View – Presenter) là một mô hình kiến trúc hướng giao diện người tiêu dùng giúp tách bóc tầng trình diễn ra khỏi tầng dữ liệu. MVP Pattern vào Android mang lại lợi thế dễ dàng không ngừng mở rộng một cách nhanh chóng, dễ dàng bảo trì và thuận lợi kiểm thử.

Bạn đang xem: Mô hình mvp trong android


Mô hình MVP vào Android (Model – View – Presenter) là một quy mô kiến trúc phía giao diện người dùng giúp bóc tách tầng trình ra mắt khỏi tầng dữ liệu. MVP Pattern trong Android đem lại lợi thế dễ dàng mở rộng một giải pháp nhanh chóng, dễ dàng gia hạn và dễ dãi kiểm thử.

Mô hình MVP trong game android viết tắt của model – View – Presenter, đấy là mô hình phong cách xây dựng hiện đang được rất nhiều lập trình viên gạn lọc sử dụng.

1. Mô hình MVP là gì?

Mô hình MVP trong app android giúp bóc tầng trình ra mắt khỏi tầng dữ liệu, câu hỏi sử dụng MVP Pattern đang giúp thuận tiện mở rộng một bí quyết nhanh chóng, dễ dàng dàng duy trì và tiện lợi kiểm test ứng dụng.


MVC, MVP, MVVM là gần như Design Pattern rất tốt thường được những lập trình viên áp dụng khi xây dưng ứng dụng Android, ai đang sử dụng kiến thiết Pattern nào?


2. Mô hình MVP bao gồm?

*
bài bác 7 xây dựng mô hình MVP trong Android" width="500" height="245" data-layzr-srcset="https://hoianuong.vn/mo-hinh-mvp-trong-android/imager_1_96498_700.jpg 1310w, https://hoianuong.vn/wp-content/uploads/2018/04/hoianuong.vn-ung-dung-tra-cuu-thi-truong-bai-7-thiet-ke-mo-hinh-mvp-trong-android-h1-300x147.jpg 300w, https://hoianuong.vn/wp-content/uploads/2018/04/hoianuong.vn-ung-dung-tra-cuu-thi-truong-bai-7-thiet-ke-mo-hinh-mvp-trong-android-h1-768x376.jpg 768w, https://hoianuong.vn/wp-content/uploads/2018/04/hoianuong.vn-ung-dung-tra-cuu-thi-truong-bai-7-thiet-ke-mo-hinh-mvp-trong-android-h1-1024x501.jpg 1024w" sizes="(max-width: 500px) 100vw, 500px" />

Model: phụ trách giải pháp xử lý tầng dữ liệu rất có thể là các thực thể (Entities), API Services, SQLite, SharedPreferences, Realm Database, helpers…View: phụ trách trình diễn cách dữ liệu hiển thị, mừng đón tương tác từ người dùng tiếp đến gọi mang đến Presenter cách xử lý tương tác.

Xem thêm: Cách Nấu Canh Kiểm Chay Miền Nam Đơn Giản, Canh Kiểm Chay

Presenter: phụ trách tiếp nhận các yêu mong từ View sau điện thoại tư vấn sự kiện giải pháp xử lý tương ứng, có thể sẽ lấy dữ liệu từ mã sản phẩm và sau cùng đẩy tài liệu cho View hiển thị.

3. Kiến tạo mô hình MVP vào Android

Trong áp dụng tra cứu thị trường chúng ta sẽ thiết kế quy mô MVP trong Android cụ thể như sau:

Bước 1: Đầu tiên các bạn tạo lớp TyGiaView.java nhằm mục tiêu để hiển thị dữ liệu, lớp này sẽ được implement trên TyGiaActivity.

package com.hoianuong.vn.tracuuthitruong.listener;import com.hoianuong.vn.tracuuthitruong.model.TyGia;public interface TyGiaView public void onComplete(TyGia tyGia); public void onError(String msg);Bước 2: tiếp theo bạn tao lớp TyGiaPresenter.java cùng TyGiaPresenterImpl.java sử dụng để xử lý những yêu ước từ phía View, truy vấn tài liệu từ model và kế tiếp đẩy tài liệu cho View hiển thị.

Lớp TyGiaPresenter.java như sau:

package com.hoianuong.vn.tracuuthitruong.presenter;public interface TyGiaPresenter public void loadData(String token);Lớp TyGiaPresenterImpl.java như sau:

package com.hoianuong.vn.tracuuthitruong.presenter;import com.hoianuong.vn.tracuuthitruong.listener.TyGiaView;import com.hoianuong.vn.tracuuthitruong.model.TyGia;import com.hoianuong.vn.tracuuthitruong.retrofit.ApiClient;import retrofit2.Call;import retrofit2.Callback;import retrofit2.Response;public class TyGiaPresenterImpl implements TyGiaPresenter private TyGiaView tyGiaView; private ApiClient apiClient; public TyGiaPresenterImpl(TyGiaView tyGiaView) this.tyGiaView = tyGiaView; this.apiClient = new ApiClient();
Override public void loadData(String token) điện thoại tư vấn call = apiClient.getClient().getListTyGiaNgoaiTe(token); call.enqueue(new Callback()
Override public void onResponse(Call call, Response response) if (response.body() != null) tyGiaView.onComplete(response.body()); else tyGiaView.onError("null");
Override public void onFailure(Call call, Throwable throwable) tyGiaView.onError(throwable.getMessage().toString()); ); Bước 3: cuối cùng tại lớp TyGiaActivity.java bạn sẽ khởi chế tác Presenter, call sự kiện tải tài liệu và trình bày hiển thị tài liệu lên màn hình.

package com.hoianuong.vn.tracuuthitruong.view.tygia;import android.os.Bundle;import android.support.design.widget.FloatingActionButton;import android.support.design.widget.Snackbar;import android.support.v4.widget.SwipeRefreshLayout;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android.support.v7.widget.Toolbar;import android.view.View;import android.widget.Toast;import com.hoianuong.vn.tracuuthitruong.R;import com.hoianuong.vn.tracuuthitruong.adapter.TyGiaAdapter;import com.hoianuong.vn.tracuuthitruong.listener.DividerItemDecoration;import com.hoianuong.vn.tracuuthitruong.listener.TyGiaView;import com.hoianuong.vn.tracuuthitruong.model.NgoaiTe;import com.hoianuong.vn.tracuuthitruong.model.TyGia;import com.hoianuong.vn.tracuuthitruong.presenter.TyGiaPresenter;import com.hoianuong.vn.tracuuthitruong.presenter.TyGiaPresenterImpl;import java.util.ArrayList;import java.util.List;public class TyGiaActivity extends AppCompatActivity implements TyGiaView private Toolbar toolbar; private RecyclerView recyclerView; private SwipeRefreshLayout swipeRefreshLayout; private TyGia tyGia = null; private danh sách listNgoaiTe = null; private TyGiaPresenter tyGiaPresenter;
Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_ty_gia); toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); fab.setOnClickListener(new View.OnClickListener()
Override public void onClick(View view) Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) .setAction("Action", null).show(); ); tyGiaPresenter = new TyGiaPresenterImpl(this); swipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipeRefresh); swipeRefreshLayout.setColorSchemeResources(R.color.colorAccent); swipeRefreshLayout.setRefreshing(true); recyclerView = (RecyclerView) findViewById(R.id.recyclerView); recyclerView.setLayoutManager(new LinearLayoutManager(this)); recyclerView.addItemDecoration(new DividerItemDecoration(getApplicationContext(), LinearLayoutManager.VERTICAL)); swipeRefreshLayout.setOnRefreshListener( new SwipeRefreshLayout.OnRefreshListener()
Override public void onRefresh() swipeRefreshLayout.setRefreshing(true); tyGiaPresenter.loadData("hoianuong.vn"); ); swipeRefreshLayout.setRefreshing(true); tyGiaPresenter.loadData("hoianuong.vn");
Override public void onComplete(TyGia tyGia) listNgoaiTe = tyGia.getDanh_sach_ngoai_te(); toolbar.setTitle("NGOẠI TỆ (" + tyGia.getThoi_gian_tra_cuu() + ")"); setSupportActionBar(toolbar); recyclerView.setAdapter(new TyGiaAdapter(listNgoaiTe)); swipeRefreshLayout.setRefreshing(false);
Override public void onError(String msg) toolbar.setTitle("NGOẠI TỆ"); setSupportActionBar(toolbar); listNgoaiTe = new ArrayList(); recyclerView.setAdapter(new TyGiaAdapter(listNgoaiTe)); swipeRefreshLayout.setRefreshing(false); Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT).show(); Cấu trúc thư mục mô hình MVP trong game android như sau:

*
bài bác 7 thi công mô hình MVP trong Android" width="384" height="542" data-layzr-srcset="https://hoianuong.vn/mo-hinh-mvp-trong-android/imager_2_96498_700.jpg 384w, https://hoianuong.vn/wp-content/uploads/2018/04/hoianuong.vn-ung-dung-tra-cuu-thi-truong-bai-7-thiet-ke-mo-hinh-mvp-trong-android-h2-213x300.jpg 213w" sizes="(max-width: 384px) 100vw, 384px" />

Bạn rất có thể tải mã nguồn hướng dẫn thiết kế mô hình MVP vào Android trải qua ứng dụng game android tra cứu thị trường tại Github:


Tải mã nguồn

Lời kết: MVC, MVP, MVVM là số đông Design Pattern cực tốt thường được các lập trình viên áp dụng khi xây dưng vận dụng Android, còn chúng ta nghĩ đâu là thiết kế Pattern tốt nhất?. Hẹn gặp gỡ lại chúng ta trong các nội dung bài viết tiếp theo trong chăm mục lập trình Android phần hướng dẫn xây dựng ứng dụng tra cứu giúp thị trường.


Chuyên mục: Ẩm thực