Если поведение, которое вы хотите изменить, еще не представлено зависимостью, извлеките его, введя абстракцию: концепцию более высокого уровня и интерфейс. Тогда вы получите часть, которую можно заменить, а не модифицировать. Абстракция предлагает возможность создавать и декорировать модели поведения, чтобы усложнять их без информирования (или изменения) исходного сервиса.