SóProvas


ID
1885171
Banca
FGV
Órgão
IBGE
Ano
2016
Provas
Disciplina
Arquitetura de Software
Assuntos

A empresa SOFTPRONTO foi contratada para desenvolver aplicativos de uma instituição financeira que possam ser executados em diferentes plataformas, como PC, celular e tablet. Para evitar a necessidade de criar diferentes soluções para cada plataforma, a empresa decidiu adotar um padrão de projeto que defina uma família de componentes para cada plataforma e uma implementação que os instancie de acordo com a plataforma-alvo na qual a aplicação estará sendo executada. O padrão adequado a essa implementação é:

Alternativas
Comentários
  • O padrão Abstract Factory pode ser utilizado na implementação de um toolkit que disponibilize controles que funcionem em diferentes interfaces gráficas, tal como Motif, GTK+ (GNOME) ou Qt (KDE). Estas GUIs possuem diferentes padrões de controles visuais e, para facilitar a construção de aplicativos que interajam facilmente com diferentes interfaces gráficas, é interessante que se defina interfaces comuns para acesso aos controles, independentemente da GUI utilizada. Este problema pode ser resolvido por meio de uma classe abstrata que declara uma interface genérica para criação dos controles visuais e de uma classe abstrata para criação de cada tipo de controle. O comportamento específico, de cada um dos padrões tecnológicos contemplados, é implementado por meio de uma classe concreta. O aplicativo, ou "cliente", interage com o toolkit por meio das classes abstratas sem ter conhecimento da implementação das classes concretas.

    FONTE: https://www.wikiwand.com/pt/Abstract_Factory

  • Prototype: Específica os tipos de objetos para criar usando uma instância como protótipo e cria novos objetos copiando este protótipo.

    Adapter: Converte a interface de uma classe em outra interface que normalmente não poderia trabalhar juntas por serem incompatíveis.

    Template Method: Define o esqueleto de um algoritmo dentro de uma operação, deixando alguns passos a serem preenchidos pelas subclasses.

    Abstract Factory: Fornece uma interface para criar famílias de objetos relacionados ou dependentes sem especificar suas classes concretas.

    Strategy: Define uma família de algoritmos, encapsula cada um e faz deles intercambiáveis.

     

  • Veja que temos um aplicativo para diversas plataformas: PC, celular e tablet. E para cada uma delas as informações e as respectivas disposições na tela podem variar. Exemplo: No celular como temos um tela pequena, mostraremos em forma de ícones as principais funcionalidades do aplicativo.

     a) E. Esse padrão criacional, trabalha com um protótipo em um classe, que será usada para construir outras classes diferentes. Ex: protótipo Carro será usada para construir o objeto Fusca (já que temos a mesma base independente de qualquer carro que estamos falando). Não é adequado para o contexto. 

     b) E. Esse padrão estrutural possibilita converter uma interface em outra. Não é adequado para o contexto. 

     c) E. Esse padrão comportamental define um esqueleto de um algoritmo deixando alguns passos para serem preenchidos por subclasses.

     d) C. Usamos quando temos uma família de objetos relacionados e precisamos implementar restrições através de interfaces. 

     e) E. Usamos quando temos uma família de algoritmos, encapsulamos cada um e trocamos quando desejamos.

  • Palavra chave para o padrão Abstract Factory: família de componentes/objetos