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