Добрый день!
Я пытался полностью отделить Слой логики приложения от Слоя пользовательского интерфейса.
Как я ни старался — все равно получается, что они что-то друг о друге знают.
И возникает проблема: как организовать взаимодействие двух слоев (модулей, объектов), которые должны обращаться друг к другу, но при этом и сохранять определенную независимость.
Причем, в этой ситуации уже сложно сказать: какой из них "верхний" слой, а какой "нижний".
Они равноправные — находятся на одном уровне.
Оказалось, я не одинок в попытке решить эту проблему.
Нашел вот такую статью:
https://habr.com/ru/post/109720/
Цитата из нее:
Проблема применения соответствующего подхода встала при реализации Model-View-Controller.
...
Как же так, кнопка и исполнитель и управляющий?
...
Передавая управление в неизвестность, мы используем событийный механизм, получая управление из неизвестности мы используем механизм объектный.
...
Но это очевидность касается только “неизвестности”. А что же делать, если мы проектируем обе части и у нас нет неизвестности? Надо придумать себе неизвестность. Но какой подход выбрать? Я пришел к выводу, что любой. Все зависит от того, откуда мы начинаем проектировать дизайн, что для нас первично.
Посмотрите, пожалуйста, эту статью.
Какое ваше мнение об идее "придумать неизвестность"?