SóProvas


ID
17776
Banca
CESGRANRIO
Órgão
BNDES
Ano
2008
Provas
Disciplina
Arquitetura de Software
Assuntos

Ao alterar o estado de uma classe, o desenvolvedor deseja que uma ou mais classes da interface gráfica sejam modificadas. Entretanto, o desenvolvedor não acha interessante criar um acoplamento forte entre essas classes. Qual padrão de projeto comportamental é mais adequado para resolver essa situação?

Alternativas
Comentários
  • Composite - ESTRUTURAAdapter - ESTRUTURAObserver - COMPORTAMENTOAbstract Factory - CRIAÇÃODecorator - ESTRUTURAfonte: http://pt.wikipedia.org/wiki/Padrões_de_projeto_de_software
  • a) Composite (composição) - PADRÃO ESTRUTUTAL-(objeto) - Compor objetos em estruturas de arvores para representar hierarquias todo-parte. Permite tratar de modo uniforme objetos individuais e suas composiçõesb)Adapter (Adaptador) - PADRÃO ESTRUTUTAL-(classe) - Converter a interface de uma classe em outra interface que clientes possam utilizar. Compatibiliza classes, permitindo que trabalem em conjunto.c) Observer - Observador - PADRÃO COMPORTAMENTAL -(objeto) - Define uma dependencia 1 para n entre objetos, de modo que quando o estado de um objeto é alterado todos seus dependentes são notificados e atualizados automaticamente ( RESPOSTA CORRETA) d) Abstract Factory - PADRÃO CRIACIONAL -(objeto) - Provê uma interface para criar familias de objetos relacionados ou dependentes sem especificar suas classes concretas e) Decorator - Decorador -PADRÃO ESTRUTUTAL -(objeto) - Anexa dinamicamente responsabilidades adicionais a um objeto.Provê uma alternativa flexivel ao uso de herança como modo de estender funcionalidades.fonte: http://www.cic.unb.br/~jhcf/MyBooks/
  • Focanco apenas no padrão Observer, temos que suas principais características são:
    1-Definir uma dependência um-para-muitos entre objetos para que quando um objeto mudar de estado, todos os seus dependentes sejam notificados e atualizadosautomaticamente.
    2-Tanto observadores quando sujeitos observados podem ser reutilizados e ter sua interface e implementação alteradas sem afetar o sistema
    3-O acoplamento forte implicado pelo relacionamento bidirecional é reduzido com o uso de interfaces e classes abstratas

    •Desvantagens
    1-O abuso pode causar sério impacto na performance. 
    Sistemas onde todos notificam todos a cada mudança ficam inundados de requisições ("tempestade de eventos")

    O Diagrama de Classes que ilustra o padrão:
     

    Fonte: http://www.argonavis.com.br/cursos/java/j930/J930_03.pdf