SóProvas


ID
913825
Banca
FCC
Órgão
DPE-SP
Ano
2013
Provas
Disciplina
Arquitetura de Software
Assuntos

Um design pattern descreve uma solução geral comprovada e reutilizável para um problema recorrente no desenvolvimento de sistemas de software orientados a objetos. Padrões de projeto ajudam a reconhecer e implementar boas soluções para problemas comuns. Dois dos principais design patterns utilizados atualmente são descritos a seguir:

I. Visa garantir que uma classe só tenha uma única instância e prover um ponto de acesso global a ela.

II. Visa definir uma dependência um-para-muitos entre objetos para que quando um objeto mudar de estado os seus dependentes sejam notificados e atualizados automaticamente.

Os design patterns descritos em I e II são, respectivamente:

Alternativas
Comentários
  • Singleton -
    Visa garantir que uma classe só tenha uma única instância e prover um ponto de acesso global a ela.
    Observer -
    Visa definir uma dependência um-para-muitos entre objetos para que quando um objeto mudar de estado os seus dependentes sejam notificados e atualizados automaticamente.
    Facade - Visa simplificar o acesso a diversas classes complexas (ex. uma API). Por exemplo, o envio de e-mail, ao invés de instanciar várias classes e executar diversos métodos, é criada um classe com o método enviarEmail(args[]) que faz tudo isto, encapsulando o restante para o programador.
    Adapter - Este padrão é utilizado para 'adaptar' a interface de uma classe. O Adapter permite que classes com interfaces incompatíveis possam interagir. Funciona como um adaptador, por exemplo, posso ter dados em um arquivo XML e em uma base de dados, crio adpatadores para acessar tanto a base quanto o XML que possuam os mesmos atributos e métodos, Depois posso criar uma classe que consolide estes dois adaptadores para ser usada pelo programador.
    Composite -
    é um padrão de projeto de software utilizado para representar um objeto que é constituído pela composição de objetos similares a ele. Neste padrão, o objeto composto possui um conjunto de outros objetos que estão na mesma hierarquia de classes a que ele pertence. O padrão composite é normalmente utilizado para representar listas recorrentes - ou recursivas - de elementos. Além disso, esta forma de representar elementos compostos em uma hierarquia de classes permite que os elementos contidos em um objeto composto sejam tratados como se fossem um único objeto. Desta forma, todos os métodos comuns às classes que representam objetos atômicos da hierarquia poderão ser aplicáveis também ao conjunto de objetos agrupados no objeto composto.
  • Os padrões de projetos do GOF são 23, divididos em três grupos: Criacionais (5), estruturais (7) e comportamentais (11)

    CRIACIONAL: Abrange a configuração e inicialização de objetos e classes. 
    ESTRUTURAL: Lida com as interfaces e a implementação das classes e dos objetos. 
    COMPORTAMENTAL: Lida com as interações dinâmicas entre grupos de classes e objetos. 

    Singleton pertence ao grupo criacional e o Observer ao comportamental.

    Facade, adapter, composite = estruturais

    Command = comportamental

    O ideal no estudo dos padrões é entendê-los, por isso recomendo videoaulas do www.provasdeti.com.br, pois são padrões difíceis de entender apenas estudando pelo livro Design Patterns, os exemplos do livro e a abordagem utilizada não é muito amigável.

  • a-

    Conforme os nomes dizem, singleton remete à simples instancia, enquanto que observer observa as dependencias e as atualiza em caso de alterações de estado.