Rodrigo
Seminário: Rodrigo. Pesquise 861.000+ trabalhos acadêmicosPor: crispin • 24/4/2014 • Seminário • 402 Palavras (2 Páginas) • 357 Visualizações
Ao surgir a necessidade de uma nova responsabilidade no problema, deve-se analisar qual classe terá mais sucesso em armazenar tal informação, baseando-se no contexto que a classe “conhece”.
Especialista da Informação e padrões de projeto: A caracterização de um determinado padrão de projeto é dada a partir da definição de o que as classes relacionadas devem saber e o que elas não devem. É necessário que esta premissa nunca seja violada.
Por exemplo: imagine uma implementação do padrão de projeto GoF Observer (Observador) onde o objeto observado saiba quem o está observando. Isto invalidaria toda a implementação.
Desta maneira, faz todo o sentido compreender quem é especialista de qual informação quando implementar um padrão de projeto.
Criador
O princípio Criador visa atribuir responsabilidades de criação, que quando bem atribuídas, podem suportar Baixo Acoplamento, maior clareza, encapsulamento e reusabilidade.
Problema: Qual classe deve ser responsável por criar uma instância de um objeto?
Solução: Atribua à classe B a responsabilidade de criar uma instância da classe A se uma ou mais condições a seguir forem verdadeiras:
• B agrega objetos A;
• B contém objetos A;
• B armazena instâncias de objetos A;
• B é dependente de objetos A;
• B possui dados de inicialização que serão passados a algum objeto A (fazendo assim B um Especialista da Informação em relação a criar A).
Ao surgir a necessidade de criar uma instância de um objeto, deve-se analisar qual classe terá mais sucesso em criar o objeto, baseando-se em sua relação com a classe do objeto a ser criado.
Criador e padrões de projeto: Criador foi concebido para suportar a criação de objetos quando esta for justificável na própria classe Criadora. Assim, este princípio não diz respeito quando há necessidade de haver delegação proposital da responsabilidade de criar instâncias de outros objetos, onde aplicam-se padrões de projeto GoF criacionais como Factory e Builder (Construtor).
No entanto, Criador pode ser aplicado a outro aspecto: quando deseja-se implementar um padrão de projeto, quem deve instanciar cada um dos objetos que compõem o padrão? Por exemplo, no padrão de projeto GoF Prototype (Protótipo), o objeto Prototype cria instâncias de si mesmo por clonagem. Portanto está de acordo com o princípio Criador, pois os dados de inicialização do objeto são de conhecimento do próprio objeto.
Agora, se atribuirmos esta responsabilidade a outro objeto, deveremos também divulgar os detalhes internos da classe Prototype a este objeto, aumentando o acoplamento deste objeto com relação ao Prototype, o que vai na contramão do princípio Criador.
Referências
...