SYSTEM ATLASЗагрузка материала

Parallel Inheritance Hierarchies

Parallel Inheritance Hierarchies

Изменение одной иерархии требует зеркального изменения другой.

Простыми словами

Например, команда замечает симптомы «Parallel Inheritance Hierarchies», но лечит каждый случай отдельно. Более устойчивый вариант — команда устраняет механизм «Parallel Inheritance Hierarchies» через изменение границ, стимулов или ответственности. Поэтому решение оценивают по тому, насколько легко его менять локально, не растаскивая одну правку по всей системе.

Механизм действия

Сначала проверяют, есть ли исходное условие из определения. Затем смотрят, как оно влияет на структуру компонентов, потоки данных, ограничения и действия участников. Если эту связь не удаётся наблюдать, принцип не стоит использовать как готовое объяснение.

Пример в работе

Нерабочий подход

Исправлять отдельные проявления «Parallel Inheritance Hierarchies» по одному, не проверяя, нет ли у них общей причины.

Системный подход

Если «Parallel Inheritance Hierarchies» действительно объясняет проблему, менять не отдельный симптом, а сам механизм — например границы, стимулы или распределение ответственности.

Ограничения

«Parallel Inheritance Hierarchies» объясняет только часть происходящего в области «Архитектура ПО». Сам принцип не говорит, насколько сильным будет эффект в вашем случае, и не заменяет измерения. При другом масштабе, среде или временном горизонте результат может отличаться.

Источник

Martin Fowler. Refactoring: Improving the Design of Existing Code (2018).

Первоисточник