No curso I : Design Patterns I foi abordado o padrão comportamental : Strategy e neste foi criado a interface e os outros impostos ICMS e ISS. Neste exemplo a regra de negócio era utilizar somente um imposto.
Já no curso II : Design Patterns I . A regra de negócio de alterou para pode-se usar mais de um imposto com isso foi alterada a implementação para uso do padrão estrutural Decorator.
Minha dúvida é : no dia a dia de desenvolvimento é comum esse refactor ? E ao invés do uso do Strategy poderia ter sido utilizado diretamente o Decorator pensando na ideia na tentativa de prever cenários futuros (hoje é um imposto só , amanhã pode ser mais , seria melhor deixar mais flexível), ou a boa prática seria implementar o necessário para aquele momento ?