Android MVP剖析(kotlin实例)

简介

MVP( Model-View-Presenter),直译过来的意思就是模型-视图-表示器,MVP是一种构架模式。在开发一个Android App模块时 普遍都会涉及到数据获取,逻辑处理,界面展示这三个步骤,而这三个步骤就正对应这MVP的M 、P、V。

作用

软件设计模式存在的意义就是为了将代码规范化,提高代码的可读性、复用性。如果你只是写一个小demo,功能简单,就没必要搞什么设计模式了,只有面对一些复杂多变的中大型软件开发,在开发前期就得选定好设计模式。
在Android开发中,MVP设计模式的作用就是将视图、逻辑、数据层这三个模块离开来。并且通过实现Contarct(协议接口),和使用Java泛型可以做到模块以达到高内聚,低耦合。

在这里插入图片描述

使用方法

  1. 先分别写BaseViewImpl,BasePresenterImpl,BaseModelImpl这三个接口。这里面可以写一些方法比如Destroy,也可以什么都不写。
  2. 写BaseActivity,BaseActivity里面可以写一些通用的初始化方法。我在这里运用了泛型,BaseActivity是一个泛型类,泛型参数P是继承自BasePresenterImpl。
abstract class BaseActivity<P : BasePresenterImpl> : AppCompatActivity() {

    @Nullable
    protected val TAG = javaClass.name

    protected var presenter :P ? = null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(layoutId)
        initView(savedInstanceState)
        presenter = setMyPresenter()
    }

    abstract fun setMyPresenter() :P?

    /**
     * 设置layout布局
     */
    abstract val layoutId : Int

    /**
     * 页面初始化
     */
    abstract fun initView(savedInstanceState: Bundle?)

    override fun onDestroy() {
        super.onDestroy()
    }
}

3.写BasePresenter,同样泛型参数V继承自BaseViewImpl,M 继承自 BaseModelImpl,并且添加了一个构造函数的参数view

open class BasePresenter<V : BaseViewImpl, M : BaseModelImpl>(protected var view: V?) {

    protected var model: M? = null

       open fun onDestroy() {
            view = null
        }
}
  1. BaseModel,P继承自BasePresenterImpl,构造参数presenter,到这一步我们的MVP构架已经完成,我后续写了一个登录模块的实例,点击查看 登录模块实例
open class BaseModel<P : BasePresenterImpl>(protected var  presenter :P?) {
}

总结

恰当的使用设计模式可以带来很多好处,在钻研技术细节时不要忘记整体框架的设计。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值