Примеры порождающих паттернов из Банды четырёх (GoF) на Delphi

Вольный перевод статьи Gang-of-Four Creational Design Pattern Examples in Delphi

Специализированная для Delphi версия Порождающих паттернов из книги “Design Patterns: Elements of Reusable Object-Oriented Software”.

Абстрактная фабрика (Abstract Factory)

Абстрактная фабрика это класс который создаёт компонент и возвращает его в виде базового (абстрактного) типа. Потребитель (код который использует фабрику) не видит реализацию ни фабрики, ни объектов которые она производит, а работает только с базовыми типами.

В этом примере используются интерфейсы вместо абстрактных классов, которые используются в примерах в книге. Любое количество конкретных классов могут реализовывать интерфейс фабрики.

Читать далее Примеры порождающих паттернов из Банды четырёх (GoF) на Delphi

Паттерн MVVM в Delphi

Часто программы написанные на Delphi не следуют какаой-то заданной архитектуре, что приводит к проблемам с сопровождением и расширением во многолетних проектах. Примеров архитектуры и реализации паттернов, в сравнении с другими языками мало. Существует группа паттернов для разделения визуальной части приложения и логики. Один из таких паттернов MVVM, он делит приложение на

  • Model
  • ViewModel
  • View

Схема MVVM

Модули с моделями могут ссылаться только на модули своей категории. Модули с ViewModel могут ссылаться на модули своей категории и на Model. А View могут ссылаться как на другие View, так и на ViewModel и Model. Передача данных между слоями, в основном, происходит посредством байндигов.

Представленный подход позволяет, в теории, сделать два разных представления приложения на VCL и FMX, и использовать для них одни и те же модули логики. В реальности, насколько это может быть осуществимо в крупном проекте, вопрос открытый, буду благодарен за любые ссылки и замечания по этой теме.

Ссылки на более подробное описание предоставлены ниже.