Padrões de Projeto: Árvore de Natal, Encapsulamento e Mais
Classificado em Computação
Escrito em em português com um tamanho de 15,88 KB
De acordo com a imagem abaixo, que padrão de projeto estrutural podemos usar para modelar uma árvore de Natal como um componente de base (a árvore) e decorações opcionais ou adornos, como bulbos, doces e grinaldas?
O padrão Decorator, pois é o padrão ideal para adicionar componentes em alguma coisa de uma maneira bem mais simplificada do que usando herança.
Por que precisamos encapsular a criação de objetos através do padrão de fábrica?
Precisa encapsular para que as classes venham com todos os métodos que o usuário vai precisar. No caso do encapsulamento no padrão de fábrica, os métodos precisam ser encapsulados para que todos os métodos sejam bem distribuídos dentro das classes, como no caso da fábrica de carros em que cada classe encapsulou cada método corretamente com o uso do padrão.
Target - Define a interface do domínio específico que o cliente utiliza.
Adapter - Adapta a interface Adaptee para a interface da classe Target.
Adaptee - Define uma interface existente que necessita ser adaptada.
Client - Colabora com os objetos em conformidade com a interface Target.
A finalidade do uso do padrão Observer permite que objetos interessados sejam avisados da mudança de estado ou outros eventos ocorrendo em outro objeto. Quando um objeto deve ser capaz de avisar outros sem fazer suposições sobre quem são os objetos. Não é aconselhado criar cadeias de Observer porque pode resultar em um loop infinito, pois terá vários objetos, um chamando o outro.
Empresa prestação de contas de empresa, onde existem duas formas de calcular prestação de contas, conta especial e comum...
a) Qual padrão está sendo adotado? Está usando Template Method.
b) public class PrestacaoComum extends Prestacao{
protected void calcularValorTaxaAdm(){
return super.valorPrincipal * 1.01; }
protected void calcularValorSeguro(){
super.valorPrincipal * 1.015;}
}
public class PrestacaoEspecial extends Prestacao{
protected void calcularValorDaTaxaAdm(){
super.valorPrincipal * 1.012;}
protected void calcular valorDoSeguro(){
super.valorPrincipal * 1.025; }