Ed
há 4 dias
Para identificar a intenção do padrão de projeto Template Method, precisamos entender que esse padrão define a estrutura de um algoritmo em uma classe base (superclasse), permitindo que subclasses implementem os passos específicos do algoritmo. Analisando as alternativas: a) Encapsular uma família de algoritmos em objetos, permitindo que os módulos clientes possam utilizar esses algoritmos de forma intercambiável. - Isso se refere ao padrão Strategy, não ao Template Method. b) Definir uma relação de dependência entre objetos, de modo a garantir que modificações no estado do objeto detentor da informação sejam notificadas automaticamente para os objetos inscritos previamente como interessados em receber essas notificações. - Isso descreve o padrão Observer. c) Implementar a estrutura de um algoritmo genérico em uma superclasse, considerando que os passos comuns são implementados na própria superclasse, enquanto os passos específicos são implementados nas suas subclasses. - Esta descrição se alinha perfeitamente com a intenção do padrão Template Method. d) Permite capturar o estado interno de um objeto, permitindo que o seu estado seja restaurado posteriormente, sem quebrar o encapsulamento desse objeto. - Isso se refere ao padrão Memento. e) Encapsular uma requisição em objeto, permitindo o registro do histórico de requisições disparadas pelos módulos cliente e a criação de filas de requisições. - Isso descreve o padrão Command. Portanto, a alternativa correta que expressa a intenção do padrão de projeto Template Method é: c) Implementar a estrutura de um algoritmo genérico em uma superclasse, considerando que os passos comuns são implementados na própria superclasse, enquanto os passos específicos são implementados nas suas subclasses.