quarta-feira, 30 de abril de 2008

Aula 20

Pardão Singleton

O padrão singleton tem o objetivo de instanciar somente uma vez o objeto que é varias vezes requisitado, assim não haverá varias instancias do mesmo objeto e consequentemente todos serão iguais.
Este padrão funciona quando se quer reaproveitar algo que já foi usado uma vez, e com isso diminuir o tempo gasto para processar essa operação.
O código para esse padrão é um código que verifica a existencia de uma instancia, caso essa verificação for positiva, ele somente retornará a instancia e não a fará novamente, se for negativa o sistema irá fazer a instancia para que na proxima não precise faze-la novamente.

O uso do atributo SYNCHRONIZED
O uso desse atributo server para que o método seja realizado por completo antes que seja chamado para ser executado por outro. Isso impossibilitaria que, no caso do singleton, seja instanciado 2 vezes, e quebrando o objetivo primário do padrão.

quinta-feira, 24 de abril de 2008

Padrões GOF

Padrão Adapter

O padrão adapter como o próprio nome já diz é um adaptador, serve para que uma classe possa usufruir de um método, por exemplo, de uma outra classe que de maneiras normais essa operação não seria possível.
Então temos, a classe origem que será a classe que vai querer executar o método e a classe destino, que possui o método a ser executado. Entre elas não há a comunicação, portanto deve haver a classe adapter que fará essa ligação. Na classe adapterOp, que é a classe adapter, vai ter a instancia do método que quer ser executado, e na classe origem vai ter a chamada do método da classe adapterOP e nela vai ter a chamada do método na classe destino, assim a chamada na classe origem executa a operação no método destino sem ter a comunicação direta com ela.

terça-feira, 1 de abril de 2008

Padrões GRASP

· Especialista da Informação
· Criador
+ Coesão
· Acoplamento fraco
· Controlador


Coesão Alta


Problema: Como manter os objetos focados, compreensíveis, gerenciáveis e, em conseqüência, com Baixo Acoplamento?
Solução: Atribua responsabilidades de modo que a coesão da classe permaneça alta. Use esse critério para avaliar alternativas

Uma classe com baixa coesão sofre dos seguintes problemas:
- Difícil de compreender

- Difícil de reutilizar
- Difícil de manter
- Frágil; freqüentemente tem de ser alterada.

Como um princípio básico, uma classe com alta coesão:
- Tem um número relativamente pequeno de métodos

- A funcionalidade desses métodos é altamente relacionada
- Não faz trabalho de mais.

Padrões GRASP

· Especialista da Informação
· Criador
· Coesão
+ Acoplamento fraco
· Controlador



Baixo Acoplamento

Problema: Como prover baixa dependência entre classes, reduzir o impacto de mudanças e obter alta reutilização?

Solução: Atribua as responsabilidades de modo que o acoplamento entre classes permaneça baixo. Use este princípio para avaliar alternativas.Ponto-chave: O padrão especialista fornece "baixo acoplamento", pois o ele nos pede uma classe que tenha a maior parte da informação para executar uma tarefa em específico, se delegarmos a responsabilidade para uma classe "Animal" para tratar uma responsabilidade de persistência ao banco de dados o acoplamento será muito maior, pois eu terei de fazer algo para "Animal" entender sobre persistir o banco de dados que não tem nada a ver com sua função.