1. Стратегия.
Одно и тоже приложение использует одинаковые библиотеки, но в зависимости от использования имеет разный функционал.
Пример: ffmpeg и ffplayer - имеют ~один исходный код, при компиляции получается отдельно плеер, отдельно конвертер.
2. Декоратор.
Поведение родительского объекта обогащается, не изменяя основной функционал.
Например : button и switch в html .