Искусственный (Pure Fabrication) - GRASP
| Проблема | Какой класс должен обеспечивать реализацию паттернов , и ? | |
| Решение | Присвоить группу обязанностей с высокой степенью зацепления классу, который не представляет конкретного понятия из предметной области (синтезировать искусственную сущность для обеспечения высокого зацепления и слабого связывания). | |
| Пример | См. пример паттерна "Информационный эксперт" . Какой класс должен сохранять экземпляры класса "Продажа" в реляционной базе данных? Если возложить эту обязанность на класс "Продажа", то будем иметь низкую степень зацепления и высокую степень связывания (поскольку класс "Продажа" должен быть связан с интерфейсом реляционной базы данных. Хранение обьектов в реляционной базе данных - это общая задача, которую придется решать для многих классов. Решением данной проблемы будет создание нового класса "ПостоянноеХранилище", ответственного за сохранение обьектов некоторого вида в базе данных.
![]() | |
| Преимущества | Класс "ПостоянноеХранилище" будет обладать низкой степенью связывания и высокой степенью зацепления. | |
| Недостатки | Данным паттерном не следует злоупотреблять иначе все функции системы превратятся в объекты. |
