Ciência da Computação Software Engenharia de Software

Um software está sendo desenvolvido e algumas decisões foram tomadas quando do seu projeto. A seguir, tem-se as decisões I, II e III que deverão ser atendidas usando-se padrões de projeto (design patterns) adequados.

I Os formatos dos dados de entrada serão validados por métodos nas classes que os modelam. Por exemplo, para validar uma senha, a classe Senha terá um método apropriado. Como o software será fornecido para clientes cujos dados terão diferentes formatos, essas classes devem ser substituídas em conjunto e essas substituições não devem resultar em alterações nos códigos que instanciam essas classes.

II A arquitetura do software será composta por vários módulos e cada módulo será composto por vários objetos interligados. Em cada módulo, o código para criar os objetos e estabelecer os relacionamentos entre os mesmos não deve estar nas classes das quais esses objetos são instâncias. Em cada módulo, esse código deve estar em uma classe responsável por construir o módulo.

III Alguns dos objetos serão persistentes e complexos. Os valores dos atributos de tais objetos serão carregados do banco de dados apenas quando forem referenciados. Um usuário de um objeto persistente receberá uma referência para um objeto em memória que se fará passar pelo objeto no banco de dados. O código do objeto em memória intermediará o acesso ao objeto no banco de dados.

Considerando as informações acima, julgue o seguinte item.

A decisão I pode ser atendida usando-se o padrão de projeto Abstract Factory; a decisão II pode ser atendida usando-se o Builder; e a decisão III pode ser atendida usando-se o Proxy.

  • C. Certo
  • E. Errado