Мысли Требуются?Я правильно очищаю свой класс ViewModel? - PullRequest
1 голос
/ 24 мая 2019

Я хочу очистить свой класс модели представления, используя raywenderlich подход .

Итак, в этом блоге они написали, что у нас есть связующий компонент, который не предназначен для пользователя.но я хочу использовать этот класс как вспомогательный класс для viewmodel.

enter image description here

Здесь я создаю класс, который я назвал классом Binder для ViewModel, которыймой взгляд будет использовать для установления контакта с классом ViewModel.

enter image description here

Теперь мой класс Binder помогает мне в очистке моего класса ViewModel, например, enter image description here

Отредактировано:

Итак, мой класс View будет выглядеть так:

class UserDetailView : AppCompatActivity(), UiCallbacks {
    lateinit var screenCallbacks: ScreenCallbacks;
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        screenCallbacks = UserDetailBinder(this).bindLayout(R.layout.activity_learn_binding)
        screenCallbacks.loadData()
    }

    override fun onUserNameChanged(userName: String) {

    }
}

И мой класс Binder будет выглядеть так:

class UserDetailBinder(private val userDetailView: UserDetailView) : ScreenCallbacks, ViewModelController {

    private val userDetailObservers = UserDetailViewState(userDetailView)

    init {
        userDetailObservers.observe(userDetailView)
    }

    fun bindLayout(layout: Int): ScreenCallbacks {
        binding<com.bold.job.databinding.ActivityLearnBindingBinding, OwnViewModel>(userDetailView, layout).let {
            var viewModel = viewModel(userDetailView, OwnViewModel::class.java)
            it.viewModel = viewModel
        }
        return this
    }

    override fun loadData() {

    }
}
...