SóProvas


ID
163639
Banca
CESGRANRIO
Órgão
Petrobras
Ano
2010
Provas
Disciplina
Arquitetura de Software
Assuntos

Em um sistema de software para controlar pedidos para entrega em domicílio, deve haver uma funcionalidade que permita que o atendente solicite a repetição de um pedido anteriormente feito por um cliente. O gerente do restaurante informou que essa funcionalidade aumentaria a agilidade no atendimento aos clientes, visto que muitos deles tendem a fazer pedidos similares aos que já fizeram anteriormente. Ao usar essa funcionalidade, o atendente do restaurante seleciona um pedido cuja composição corresponde a produtos normalmente requisitados pelos clientes e solicita ao sistema a construção de um novo pedido igual ao selecionado. Esse novo pedido pode, então, ser alterado pelo atendente se o cliente solicitar a adição de novos produtos do cardápio, por exemplo. Portanto, a parte principal dessa funcionalidade corresponde a criar uma cópia de um pedido a partir de pedido preexistente. Na implementação dessa funcionalidade, seu desenvolvedor deve utilizar qual padrão de projeto do catálogo GoF (Gang of Four), dentre os listados abaixo?

Alternativas
Comentários
  • Prototype: Especifica os tipos de objetos a serem criados usando uma instância prototípica e criar novos objetos copiando este protótipo.

  •  Prototype é "Especificar os tipos de objetos a serem criados usando uma instância como protótipo e criar novos objetos ao copiar este protótipo." segundo o[GoF]

  • Command - Encapsular uma solicitação como um objeto, desta forma permitindo que clientes parametrizem diferentes solicitações, enfileirem ou façam o registro (log) de solicitações e suportem operações que podem ser desfeitas.

    Abstract Factory é um padrão de projeto de software (também conhecido como design pattern em inglês). Este padrão permite a criação de famílias de objetos relacionados ou dependentes, através de uma única interface e sem que a classe concreta seja especificada.

    Factory Method, na ciência da computação, é um padrão de projeto de software (design pattern, em inglês) que fornece uma interface para criação de famílias de objetos relacionados ou dependentes, sem especificar suas classes concretas. O factory method permite adiar a instanciação para as subclasses.

    Prototype, na ciência da computação, é um padrão de projeto de software (design pattern, em inglês) que permite a criação de objetos a partir de um modelo original, ou protótipo.

    Builder é um padrão de projeto de software que permite a separação da construção de um objeto complexo da sua representação, de forma que o mesmo processo de construção possa criar diferentes representações.

  • Vamos imaginar que uma classe Pedido possui várias variáveis. Algumas delas podem ser: macarronada; molho; arroz; feijão; salada...
    Cada variável possui os seus respectivos métodos get e set. Quando eu tenho um prato padrão, por exemplo, arroz, feijão e macarronada sem molho, eu possi setar os seus métodos set como true, true, true e false, respectivamente. Claramente, qualquer outro atributos recebereria false.

    Se eu quero agora um prato de arroz, feijão e macarrão com molho, a partir de um prato já feito, eu posso fazer uma cópia dessa objeto e modificar os seus atributos.

    Por exemplo: Obj obj = objetoAserClonado.clone();
    obj possui agora uma cópia do prato arroz, feijão e macarrão sem molho. Para adicionar o molho, eu faço:

    obj.setMolho(true);

    e pronto!

    Por isso, o padrão Protptype é o melhor nesse caso.

    O padrão Builder iria funcionar se eu não quisesse adicionar mais nada. O padrão bridge varia a apresentação a partir dos mesmos objetos. Um exemplo seria um prato de arroz, feijão por cima do arroz (vem depois) e por último, o macarrão se molho. Se eu quisesse apenas mudar a aparência, sem mudar os objetos, como um prato de feijão, arroz por cima e depois macarrão, esse padrão seria perfeito.

    Os demais padrões listados não tem nada a ver.
  • e-

    prototype especifica objetos usando instancia de prototipo, criando novos objetos pela copia do prototipo, alterando assim o prototipo