Рубрика «паттерны» - 7

Работаю в проекте, реализованном на C#. Предлагаю решение задачи, с которой столкнулся в проекте.
Условия. Есть классы-сущности, описывающие данные предметной области. При этом бывает и наследование — естественным образом организованное отношение «является». Эти классы описывают данные. Они лежат в отдельной сборке. Есть уровень клиента и уровень сервера. И ими используется эта сборка.
Возникновение задачи. Сборка, описывающая сущности, может описывать поведение только предметной области. Но, возникла задача, когда в слое сервера нужно работать с объектами, описанными в сборке сущностей, у которых уже есть иерархия наследования, полиморфно. При этом нужно сохранять ту же иерархию наследования. Требуемая работа с объектами на сервере не относится к предметной области.
Читать полностью »

Программирование / Еще раз про Bridge (в картинках) Еще раз, если позволит сообщество, обращусь к теме паттерна Мост (Bridge), ибо последние статьи, на мой взгляд, объясняют его не так просто, как нужно.

Основная идея: «Используем Мост там, где нужно менять не только имплементацию, но и абстракцию».

Одна картинка стоит 1000 слов…

Программирование / Еще раз про Bridge (в картинках)

Разносим абстракцию (API) и имплементацию в две разных иерархии и получаем возможность управлять ими раздельно. Теперь имплементация не привязана к интерфейсу, и мы можем создавать новые абстракции (путем расширения), основываясь на методах базовых абстракций.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js