Em um projeto de software, você precisa implementar um sistema
que permita que diferentes tipos de notificações (como e-mail,
SMS e push) sejam enviadas a usuários de acordo com suas
preferências. Você deseja um design flexível que permita adicionar
novos tipos de notificações no futuro sem modificar muito o
código existente.
O padrão de design mais adequado para esse cenário é o