Ну, я не видел курс множественного числа, но я могу говорить вообще об управлении зависимостями. В исходной схеме у вас есть объект A, который знает об объектах B и B, которые знают об A. В этом смысле существует две степени связи: A зависит от B и B зависит от A. Хотя они зависят только от интерфейсов, которые является положительным, что зависимость все еще существует.
Удаляя одну из этих зависимостей, вы имеете сценарий, в котором A зависит от B, но B не зависит, заботится о нем или даже знает об A. В исходном сценарии, если вы вносите изменения в IView или IViewModel, API, это приведет к нарушению изменений. Во втором случае вы можете внести любые изменения, которые вы хотите в IViewModel, и они не повлияют на реализацию представления.
Это преимущество.
Что касается недостатков, единственным является то, что вы теряете удобство, но я считаю, что на самом деле это не является недостатком. В моей книге, когда вы можете минимизировать связь и зависимости (в пределах разумного), это победа.
согласен. этот интерфейс напоминает мне шаблон MVP –
Итак, вы предназначаете этот контекст? интерфейс IView общественного { IViewModel ViewModel {получить; набор;}} общедоступный интерфейс IViewModel {} –
"что ViewModel совершенно не знают о View" - _totally_ не всегда практично или строго необходимо. Такие вещи, как закрытие Windows и отображение всплывающих окон, становятся очень трудными, если вы следуете «чистым» путем. –