Простыми словами
Представьте замену двигателя, пока водитель продолжает пользоваться теми же педалями и рулём. Branch by Abstraction прячет старую и новую реализацию за общей границей, поэтому переход можно делать небольшими шагами без долгоживущей ветки кода.
Механизм действия
Сначала проверяют, есть ли исходное условие из определения. Затем смотрят, как оно влияет на структуру компонентов, потоки данных, ограничения и действия участников. Если эту связь не удаётся наблюдать, принцип не стоит использовать как готовое объяснение.
Пример в работе
Применять локальное решение без проверки контекста, ограничений и вторичных последствий.
Сначала определить механизм, затем выбрать минимальное изменение и измерить результат.
Ограничения
«Branch by Abstraction» объясняет только часть происходящего в области «Архитектура ПО». Сам принцип не говорит, насколько сильным будет эффект в вашем случае, и не заменяет измерения. При другом масштабе, среде или временном горизонте результат может отличаться.
Источник
Martin Fowler. Branch By Abstraction (2014; updated).