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...

Acerca dos conceitos sobre orientação a objetos, julgue os itens a seguir.
Uma classe abstrata tem apenas métodos abstratos e não pode ser instanciada; um método abstrato tem a sua assinatura especificada, mas o seu corpo não foi implementado. Na linguagem C++, métodos virtuais puros são abstratos; na linguagem Java, as classes e os métodos abstratos são identificados pela palavra abstract.
Acerca dos conceitos sobre orientação a objetos, julgue os itens a seguir.
A herança entre classes possibilita a redefinição de métodos em classes herdeiras. Pode-se definir uma nova implementação de um método na classe herdeira mantendo-se a mesma assinatura que o método tem na superclasse. Um método é dito polimorfo se for definido com a mesma assinatura mais de uma vez em uma hierarquia de classes.