Sensacional a sua resposta. So vou adicionar aqui mais uma fonte de estudo que é muito boa: https://refactoring.guru/design-patterns/book
Esse livro é muito bom pra aprender e consultar design patterns. Se não me engano, ele tem uma lista de problemas e qual padrão usar para resolver.
Outra coisa. Nem sempre você precisa aplicar o padrão inteiro na sua implementação. As vezes uma implementação parcial é suficiente e não adiciona complexidade exagerada.