Устойчивый к изменениям (Protected Variations) - GRASP
Проблема | Как спроектировать систему так, чтобы изменение одних ее элементов не влияло на другие? |
Решение | Идентифицировать точки возможных изменений или неустойчивости и распределить обязанности таким образом, чтобы обеспечить устойчивую работу системы. |
Пример | Паттерн проектирования "Полиморфизм", см. является хорошей иллюстрацией данного метода. В данном случае точкой вариации или неустойчивости являются интерфейсы внешних систем. При добавлении интерфейса "IНалоговаяСистемаАдаптер" на основе принципа полиморфизма получается, что внутренние объекты смогут взаимодействовать с устойчивым интерфейсом, а детали взаимодействия с внешними системами будут скрыты в конкретных реализациях адаптеров. |