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

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

Теперь мой класс Binder помогает мне в очистке моего класса ViewModel, например, 
Отредактировано:
Итак, мой класс 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() {
}
}