Android MVP模式规范

作者: 之后_90 | 来源:发表于2019-12-10 11:13 被阅读0次

概述

统一MVP模式代码规范(该规范基于google推荐的mvp模式)

契约类

契约类主要是为了减少类泛滥问题,契约类命名要求是功能可描述,里面包含View声明和Presenter抽象声明,类名必须是View和Presenter

/**

 * MVP模式,契约类,用于接口统一管理,业务逻辑清晰

 * 订单结算页契约类

 */

public interface PersonContract {

    interface View extends BaseView {

        /**

         * 正在加载

         */

        void onLoading();

        /**

         * 加载成功

         */

        void onLoadSuccess();

        /**

         * 加载失败

         */

        void onLoadFailed();

    }

    abstract class Presenter extends BasePresenter<View> {

        public Presenter(View view) {

            super(view);

        }

        /**

         * 请求接口

         */

        public abstract void loadData(String url);

    }

}

Presenter业务类

1、  mView在使用前必须做判空操作,强制要求

2、  Presenter不允许传入Context或者做UI相关代码操作。

/**

 * 业务Presenter

 */

public class PersonPresenter extends PersonContract.Presenter {

    private static final String TAG = "PersonPresenter";

    public BillPresenter(View view) {

        super(view);

    }

    /**

     * 请求接口

     */

    @Override

    public void loadData(String url) {

            if (mView != null) {

            mView.onLoading();

        }

    }

}

UI层

在onDestroy()的生命周期里面必须调用mPresenter.destroy()方法,强制要求

public class PersonActivity  implements PersonContract.View {

    private static final String URL = "http://www.baidu.com";

    private PersonPresenter mPresenter;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        mPresenter = new PersonPresenter(this);

        setContentView(R.layout.persion_layout);

        mPresenter.loadData(URL);

    }

    @Override

    protected void onDestroy() {

        mPresenter.destroy();

        super.onDestroy();

    }

    @Override

    public void onLoading() {

    }

    @Override

    public void onLoadSuccess() {

    }

    @Override

    public void onLoadFailed() {

    }

}

相关文章

网友评论

    本文标题:Android MVP模式规范

    本文链接:https://www.haomeiwen.com/subject/zmgwgctx.html