Caso os conceitos de DDD (domain-driven design) tenham sido utilizados, a alteração em blocos de construção do tipo fábrica será suficiente (ERRADO: será insuficiente) para atender às novas necessidades da empresa.
Para atender às novas demandas da empresa seria necessário fazer alterações na camada de interface e criação de novos blocos como: entidade, fábrica, objetos de valores etc.
FONTE: http://www.agileandart.com/2010/07/16/ddd-introducao-a-domain-driven-design/
Errado.
Para a construção da camada de domínio/negócio é utilizado um padrão chamado blocos de construção. Que podem ser:
- Entidades: classes de objetos que necessitam de uma identidade. Normalmente são elementos do domínio que possuem ciclo de vida dentro da aplicação: um Cliente, por exemplo, se cadastra no sistema, faz compras, se torna inativo, é excluído, etc.
- Objetos de Valores: objetos que só carregam valores, mas que não possuem distinção de identidade. Bons exemplos de objetos de valores seriam: strings, números ou cores.
- Agregados: compostos de Entidades ou Objetos de Valores que são encapsulados numa única classe. O Agregado serve para manter a integridade do modelo. Elegemos uma classe para servir de raiz do Agregado. Quando algum cliente quiser manipular dados de uma das classes que compõem o Agregado, essa manipulação só poderá ser feita através da raiz;
- Fábricas: classes responsáveis pelo processo de criação dos Agregados ou dos Objetos de Valores. Algumas vezes, Agregados são relativamente complexos e não queremos manter a lógica de criação desses Agregados nas classes que o compõem. Extraímos então as regras de criação para uma classe externa: a fábrica;
- Serviços: classes que contém lógica de negócio, mas que não pertence a nenhuma Entidade ou Objetos de Valores.
- Repositórios: classes responsáveis por administrar o ciclo de vida dos outros objetos, normalmente Entidades, Objetos de Valor e Agregados. Os repositórios são classes que centralizam operações de criação, alteração e remoção de objetos.
- Módulos: abstrações que têm por objetivos agrupar classes por um determinado conceito do domínio.