Где разместить логику специально для ВМ и Сервиса - PullRequest
0 голосов
/ 26 сентября 2019

Итак, я много реорганизовал свой код, чтобы он соответствовал архитектуре MVVM.Я использую MEF, и я использую Caliburn Micro, но у меня есть дилемма / вопрос.

Мой ObjViewModel имеет некоторые свойства, такие как "IsAddObjToggleChecked" и т. Д., И есть некоторая логика, которая требует проверки этого свойстваТо есть, если это свойство проверено, делайте бизнес-логику.Теперь я не хочу иметь эту логику в моей модели представления, где она в настоящее время находится, потому что модель представления состоит из 800 строк и имеет «бизнес-логику» - у меня есть ObjService, который внедряется в мою модель представления и содержит наблюдаемую коллекцию Obj, гдеObj - моя модель данных.

Вопрос в том, куда я могу поместить эту бизнес-логику?Модель данных не имеет смысла для нее, поскольку бизнес-логика работает с наблюдаемым набором моделей данных.Я думал поместить его в мой класс ObjService, но тогда как мне получить бизнес-логику, которая содержит свойство модели представления?Передать параметр в сервис?Разве это не создает тесную связь?

Тогда я подумал о том, чтобы просто использовать совершенно отдельный одноэлементный класс, такой как класс ObjHelper .... для выполнения необходимой логики, но если мы передадим свойства, используемые вэти вспомогательные функции / бизнес-логика, как viewmodel узнает, что они были изменены?

Так что я не в курсе, куда все это должно пойти ..

...