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