Декоратор - это один из наименее инвазивных шаблонов, который вы можете применить - когда вы это делаете, вы следуете принципу Open / Closed, потому что ваш первоначальный класс никогда не изменяется. Я склонен использовать Decorator, когда это возможно. В основном это тот случай, когда исходному классу не нужно взаимодействовать с расширением.
Внедрение Стратегии является более инвазивным, потому что класс, получающий Стратегию, должен быть модифицирован для принятия Стратегии (очевидно, что после того, как вы сделали эту модификацию, вы можете применять множество различных Стратегий без дальнейшей модификации вашего класса). Я использую Стратегию, когда исходный класс должен взаимодействовать со Стратегией (например, спросить ее о чем-либо).
Обратите внимание, что стратегии часто могут быть украшены ...