Часто программы написанные на Delphi не следуют какаой-то заданной архитектуре, что приводит к проблемам с сопровождением и расширением во многолетних проектах. Примеров архитектуры и реализации паттернов, в сравнении с другими языками мало. Существует группа паттернов для разделения визуальной части приложения и логики. Один из таких паттернов MVVM, он делит приложение на
- Model
- ViewModel
- View
Модули с моделями могут ссылаться только на модули своей категории. Модули с ViewModel могут ссылаться на модули своей категории и на Model. А View могут ссылаться как на другие View, так и на ViewModel и Model. Передача данных между слоями, в основном, происходит посредством байндигов.
Представленный подход позволяет, в теории, сделать два разных представления приложения на VCL и FMX, и использовать для них одни и те же модули логики. В реальности, насколько это может быть осуществимо в крупном проекте, вопрос открытый, буду благодарен за любые ссылки и замечания по этой теме.
Ссылки на более подробное описание предоставлены ниже.
Из моего опыта — реализация MVVM в Delphi это большой минус.
Создание кучи прослоек для получения псевдо эфекта «кросплатформености», который вы никогда в жизни не будите использовать…
MVVM удобен в тех я зыках где нет РАДсреды, в делфи выигрывает обычный клсический подход Форма, на ней Грид с ДатаСетом, без биндинга . Работает быстрее и более лёгок в сопровождение…
Причина рассмотрения подобных архитектур, из-за того, что в крупном проекте, которому больше 10 лет, уже давно есть проблемы с сопровождением. Может быть для прощения поддержки вы используете, какие другие правила или определенную структуру проекта?