Я экспериментировал с шаблоном декоратора, чтобы расширить функциональность кода, который вы не хотите касаться, например, и я вижу, как его реализовать, но теперь я не уверен, почему вы не просто наследуете исходный класс и расширяете таким образом.
Я прочитал, что шаблон декоратора позволяет добавлять функциональные возможности во время выполнения, тогда как наследование означает его там во время компиляции.
Я не понимаю этого.
Может кто-нибудь объяснить это, привести примеры и объяснить, когда лучше использовать декоратор против наследования.
Спасибо