Просмотр модели состава разрывов структуры mvvm - PullRequest
0 голосов
/ 16 мая 2019

В mvvm представление никогда не может получить доступ к модели.

Я определяю «Просмотр состава модели» как концепцию, в которой модель представления может иметь от 1 до многих дочерних моделей представления

Если родительская модель представления должна мутировать модель 1 из своих дочерних моделей представления, то, если представление имеет доступ к этой модели представления, оно по сути имеет доступ для изменения моделей дочернего виртуального компьютера.

Какой подход можно использовать для применения правила «модель никогда не обращается к модели»?

Пример кода в Swift


class BigVm{
     let accountVm: AccountViewModel
     let anotherVm: AnotherSubviewViewModel


     private func someEventHappened(){

     //some logic that mutates accountVm's model based on state of anotherVm and vise versa
         accountVm.mutateOrAccessModel()
     }
}


class BigViewController: UIViewController{
     let viewModel: BigVm

     let subviewAccount: AccountView //has a viewModel of AccountViewModel
     let anotherSubview: AnotherSubview //has a viewModel of AnotherSubviewViewModel


     func viewDidLoad(){
        super.viewDidLoad()
        subviewAccount.vm = viewModel.accountVm
        anotherSubview.vm = viewModel.anotherVm

        //now what stops BigViewController to do the next lines

        viewModel.subViewAccount.mutateOrAccessModel()
     }

}




1 Ответ

0 голосов
/ 16 мая 2019

Мое решение этого заключается в доступе к viewModels в качестве протоколов на уровне представления. Хотя это добавляет много шаблонов только для обеспечения mvvm.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...