Здравствуйте, Буравчик, Вы писали:
C>>Переодически приходят заказы на разработку настольных приложений, и каждый раз я смотрю на разработку UI как баран на новые ворота. В основном из-за непонимания как эффективно разделять модель и представление. Какие хорошие книги или серии статей есть на эту тему?
Б>Создай класс-фасад с методами-бизнес логики: добавить то-то, удалить то-то, посчитать то-то. В общем, то, что делает твое приложение.
Б>Методы этого класса — это контракт между моделью и представлением. Для выполнения любых операций представление должно работает только с этим классом и ни с чем больше.
Б>Представление может быть реализовано как угодно — создавай любые классы — для окон, для настроек, и т.п. Б>Реализация бизнес-логики тоже как угодно — создавай классы для алгоритмов, бизнес-объектов, файлов, внешних сервисов и т.п.
Б>Если возникают сомнения, является ли что-то бизнес-логикой (должно быть в модели) или логикой представления (должно быть в представлении), то представь сразу что ты в дальнейшем разработаешь другие интерфейсы, кроме графического будет текстовый, голосовой и т.п. Если поведение одинаковое для всех видов интерфейсов — это бизнес-логика, если отличается — это представление.
Спасибо, но это прям какие-то основы промышленного проектирования. Когда взаимосвязи видно невооружённым глазом, то и проблем-то нет, а вот когда начинаются всякие циклические зависимости или неизбежно протекающие абстракции, то становится грустно.