Android MVP模式簡單易懂的介紹方式 (一)


Android MVP模式簡單易懂的介紹方式 (一)

Android MVP模式簡單易懂的介紹方式 (二)

Android MVP模式簡單易懂的介紹方式 (三)

最近正在研究Android的MVP模式。看了很多文章,基本上都是長篇大論,一堆理論。但這里,我們不從理論出發,我們從最最原始實用的介紹出發。那么,這里我默認大家都是有基本的MVP理論知識的,如果沒有,可以稍微看下MVP的基本理論。當然,不看基本理論,對於閱讀本文也是沒有障礙的。這里我們只需要知道一個最最核心的理論:

MVP把Activity中的UI邏輯抽象成View接口,把業務邏輯抽象成Presenter接口,Model類還是原來的Model。

這個理論,看起來狠抽象是吧,簡單的來說,就是把Activity的邏輯抽離出來,讓Activity更加簡潔,並且邏輯可復用。MVP其實處理的就是這么一回事。如果有在網上找過MVP的文章,相信大家都看過,很多都是用登陸來做Demo並加以介紹。本文一樣,但是本文會從實際思路出發,一步一步帶領大家了解MVP。

首先,看看我們的項目結構把。分包這個沒啥好說的,就是根據MVP的文件夾划分,這個沒有強制規定。可以根據自己的喜好分。然后,這里只是為了方便大家對項目整體了解,才第一步掛出項目結構。其實,實際開發種,我們應該從需求分析出發。

 

那么現在我們就從需求分析,一步一步將整個目錄搭建起來。
首先,我們的目的用MVP做一個登陸模塊。那么我們先從數據出發,登陸需要什么呢?賬號,密碼,同時還需要驗證賬號密碼的正確性。因此,我們需要一個model接口,這個接口需要擁有拿到賬號,拿到密碼,驗證賬號密碼的方法。因此,得到下面這個接口。

public interface IUser {

    //拿到賬號
    String getName();
    //拿到用戶名
    String getPassword();
    //驗證登陸
    int checkUserValidity();
}

那么既然有了接口,那必須要有人來實現他對吧。因此,我們需要在寫一個model類來實現這個接口。這個類除了實現接口的所有方法,為了方便待會使用,我們還需要給他一個構造方法。那么,來到這一步,Model也就完成了。我們將登陸驗證的判斷邏輯放到了Model中。這樣,驗證登陸的邏輯也獨立開來無關Activity了。為了避免篇幅過長,接下來將在下一篇文章中介紹下一步操作。Android MVP模式簡單易懂的介紹方式 (二)

public class UserModel implements IUser {

    private String name;
    private String passwd;

    public UserModel(String name, String passwd) {
        this.name = name;
        this.passwd = passwd;
    }

    @Override
    public String getName() {
        return name;
    }

    @Override
    public String getPassword() {
        return passwd;
    }

    @Override
    public int checkUserValidity() {
        
        //這里其實就是對登陸進行判斷。其實就是對數據進行處理判斷,一般我們寫在Activity里面。寫在這里不久又給Activity減負了嘛。
        if (!name.equals("admin")) {
            //用戶名錯誤
            return -1;
        }
        if (!passwd.equals("123456")) {
            //密碼錯誤
            return -2;
        }
        if (name.equals("admin") && passwd.equals("123456")) {
            //登陸正確
            return 1;
        }
        return 0;
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM