refactor: 对View层基类进行抽象

This commit is contained in:
Quyunshuo
2020-10-13 09:18:53 +08:00
parent 6e186de3a8
commit fb47e3232a
6 changed files with 37 additions and 15 deletions

View File

@ -18,7 +18,7 @@ import java.lang.reflect.ParameterizedType
* @Remark: Activity基类 与项目无关 * @Remark: Activity基类 与项目无关
*/ */
abstract class BaseFrameActivity<VB : ViewBinding, VM : ViewModel> : abstract class BaseFrameActivity<VB : ViewBinding, VM : ViewModel> :
AppCompatActivity() { AppCompatActivity(), FrameView {
protected val mBinding: VB by lazy(mode = LazyThreadSafetyMode.NONE) { protected val mBinding: VB by lazy(mode = LazyThreadSafetyMode.NONE) {
val vbClass: Class<VB> = val vbClass: Class<VB> =
@ -33,9 +33,6 @@ abstract class BaseFrameActivity<VB : ViewBinding, VM : ViewModel> :
ViewModelProvider(this).get(vmClass) ViewModelProvider(this).get(vmClass)
} }
protected abstract fun initView()
protected abstract fun initViewObserve()
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setContentView(mBinding.root) setContentView(mBinding.root)

View File

@ -19,8 +19,7 @@ import java.lang.reflect.ParameterizedType
* @Class: BaseFrameFragment * @Class: BaseFrameFragment
* @Remark: Fragment基类 与项目无关 * @Remark: Fragment基类 与项目无关
*/ */
abstract class BaseFrameFragment<VB : ViewBinding, VM : ViewModel> : abstract class BaseFrameFragment<VB : ViewBinding, VM : ViewModel> : Fragment(), FrameView {
Fragment() {
protected val mBinding: VB by lazy(mode = LazyThreadSafetyMode.NONE) { protected val mBinding: VB by lazy(mode = LazyThreadSafetyMode.NONE) {
val vbClass: Class<VB> = val vbClass: Class<VB> =
@ -34,9 +33,6 @@ abstract class BaseFrameFragment<VB : ViewBinding, VM : ViewModel> :
ViewModelProvider(this).get(vmClass) ViewModelProvider(this).get(vmClass)
} }
protected abstract fun initView()
protected abstract fun initViewObserve()
override fun onCreateView( override fun onCreateView(
inflater: LayoutInflater, inflater: LayoutInflater,
container: ViewGroup?, container: ViewGroup?,

View File

@ -15,7 +15,7 @@ import java.lang.reflect.ParameterizedType
* @Class: BaseFrameNotMVVMActivity * @Class: BaseFrameNotMVVMActivity
* @Remark: 不使用 MVVM 的 Activity 基类 * @Remark: 不使用 MVVM 的 Activity 基类
*/ */
abstract class BaseFrameNotMVVMActivity<VB : ViewBinding> : AppCompatActivity() { abstract class BaseFrameNotMVVMActivity<VB : ViewBinding> : AppCompatActivity(), FrameNotMVVMView {
protected val mBinding: VB by lazy(mode = LazyThreadSafetyMode.NONE) { protected val mBinding: VB by lazy(mode = LazyThreadSafetyMode.NONE) {
val vbClass: Class<VB> = val vbClass: Class<VB> =
@ -24,8 +24,6 @@ abstract class BaseFrameNotMVVMActivity<VB : ViewBinding> : AppCompatActivity()
inflate.invoke(null, layoutInflater) as VB inflate.invoke(null, layoutInflater) as VB
} }
protected abstract fun initView()
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setContentView(mBinding.root) setContentView(mBinding.root)

View File

@ -17,7 +17,7 @@ import java.lang.reflect.ParameterizedType
* @Class: BaseFrameNotMVVMFragment * @Class: BaseFrameNotMVVMFragment
* @Remark: 不使用 MVVM 的 Fragment 基类 * @Remark: 不使用 MVVM 的 Fragment 基类
*/ */
abstract class BaseFrameNotMVVMFragment<VB : ViewBinding> : Fragment() { abstract class BaseFrameNotMVVMFragment<VB : ViewBinding> : Fragment(), FrameNotMVVMView {
protected val mBinding: VB by lazy(mode = LazyThreadSafetyMode.NONE) { protected val mBinding: VB by lazy(mode = LazyThreadSafetyMode.NONE) {
val vbClass: Class<VB> = val vbClass: Class<VB> =
@ -26,8 +26,6 @@ abstract class BaseFrameNotMVVMFragment<VB : ViewBinding> : Fragment() {
inflate.invoke(null, layoutInflater) as VB inflate.invoke(null, layoutInflater) as VB
} }
protected abstract fun initView()
override fun onCreateView( override fun onCreateView(
inflater: LayoutInflater, inflater: LayoutInflater,
container: ViewGroup?, container: ViewGroup?,

View File

@ -0,0 +1,14 @@
package com.quyunshuo.base.mvvm.v
/**
* @Author: QuYunShuo
* @Time: 2020/10/13
* @Class: FrameNotMVVMView
* @Remark: View层基类抽象
*/
interface FrameNotMVVMView {
/**
* 初始化View
*/
fun initView()
}

View File

@ -0,0 +1,19 @@
package com.quyunshuo.base.mvvm.v
/**
* @Author: QuYunShuo
* @Time: 2020/10/13
* @Class: FrameView
* @Remark: View层基类抽象
*/
interface FrameView {
/**
* 初始化View
*/
fun initView()
/**
* 订阅LiveData
*/
fun initViewObserve()
}