Considere o seguinte domínio.
Uma empresa de consultoria na área de desenvolvimento de software realiza assistência a projectos de desenvolvimento de software . A empresa de consultoria tem empregados: gestores, programadores normais e programadores peritos. Cada empregado realiza um tipo de trabalho específico, o gestor gere um projecto, o programador normal programa e o programador perito programa muito. Adicionalmente, cada tipo de trabalhador tem um custo distinto: o gestor custa 1000 euros, o programador normal custa 1500 euros e o programador perito custa 10000 euros. 
No contexto de um projecto, a empresa de consultoria pode atribuir o projecto a um dos seus empregados ou pode constituir uma equipa com vários dos seus empregados (podendo ainda agrupar os empregados em sub-equipas) e atribuir a equipa ao projecto. O custo do projecto depende do custo dos empregados atribuídos ao projecto:

  • No caso em que o projeto está atribuído a um único empregado, o custo do projecto é igual ao custo deste empregado.
  • No caso em que o projecto está atribuído a uma equipa, o custo do projecto é igual ao custo dos vários empregados envolvidos na equipa.
O projecto deverá suportar a funcionalidade realizar trabalho que deverá corresponder a invocar a funcionalidade de trabalhar dos vários empregados envolvidos:
  • No caso em que o projeto está atribuído a um único empregado, apenas se considera o trabalho realizado por este empregado.
  • No caso em que o projecto está atribuído a uma equipa, então tem que se considerar o trabalho de todos os empregados envolvidos na equipa.
Qual é que deve ser o padrão de desenho a aplicar neste caso por forma a que o código da entidade projecto não necessita de distinguir se está atribuído a um empregado individual ou a uma equipa?
Aplique o padrão escolhido neste caso.