Я использую шаблон декоратора один из первых раз, как часть проекта Uni. Насколько я могу видеть, шаблон, по-видимому, больше предназначен для добавления функциональности модульным образом, однако нас научили его таким применениям, как устройство для приготовления кофе или пиццы, где объект имеет добавленные модульные компоненты - изменение свойства, а не поведение.
Я пытаюсь максимально использовать оба варианта, однако у меня возник вопрос. В примере из книги, которую мы используем (Head First Design Patterns), шаблон используется в кафе, где создаются разные сорта кофе. Так, например, молоко, пенка, сахар, брызги - все это декораторы.
Как бы вы внедрили систему, которая использовала один и тот же декоратор несколько раз (например, кофе с двумя сахарами)? Вы бы перевернули кофе или добавили бы сахар? Или (как я начинаю подозревать) это никогда не будет проблемой, поскольку шаблон не предназначен для такого использования?