quinta-feira, 17 de abril de 2008

Aulas 17 e 18 - Projeto Orientado a Objetos

Padrões GOF


Padrão GOF contém 23 padrões e algumas formas de classificação são elas: criação, estrutura e comportamento, sendo que a criação está relacionando na criação propriamente dita na criação do objeto, a estrutura nos mostra as associações entre as classes e objetos e o comportamento divide as responsabilidades entre as classes ou objetos.
Os padrões GOF está voltado também na qualidade de um software usando o conceito de herança, polimorfismo, modularidade, composição e abstração, a alta coesão e o baixo acoplamento é um fator importante nos padrões GOF para satisfazer a qualidade do software.
Metsker classifica os padrões GOF como:


· Interface – é o meio que liga uma classe ou objeto através de um adaptador;


· Responsabilidade – atribui responsabilidade as classes e objetos, também utilizados nos padrões GRASP;


· Construção – e a construção propriamente dita de uma classe, por exemplo: fabricam instâncias Building;


· Operação – parte de métodos das classes;


· Extensão – Extensibilidade, polimorfismo.


Padrão Interface – Adapter


Adapter, também conhecido como Wrapper, é um padrão de projeto de software ou de desenho (do inglês design pattern). Este padrão é utilizado para 'adaptar' a interface de uma classe. O Adapter permite que classes com interfaces incompatíveis possam interagir.
Adapter permite que um objeto cliente utilize serviços de outros objetos com interfaces diferentes por meio de uma interface única


Podemos ter a seguinte situação:


















O Cliente precisa comunicar-se com o Adaptado, mas possuem interfaces incompatíveis. Então, ele comunica-se com o Adapter, fazendo a este uma solicitação. O Adapter repassa a solicitação para o Adaptado. O Adaptado precisa então devolver uma resposta para o Cliente, mas novamente não é possível devido à incompatibilidade de interfaces. A solução é enviar a resposta para o Adapter que irá em seguida encaminhá-la para o Cliente, completando assim o ciclo de comunicação. O adapter é encarregado de fazer o meio entre as classes que não se comunicam dando uma flexibilidade as classes que não são compatíveis umas com as outras.



Em seguida podemos observar um código que representa o padrão Adapter:


//Classe Cliente


public class cliente extends Adaptador{

public static void main(String[] args) {


cliente c = new cliente(); c.executa();


}

}




//Classe Adaptador



public class Adaptador {

public void executa(){


Resultado a = new Resultado();

a.metodo();
}


}




//Classe Resultado


public class Resultado {


public void metodo(){


System.out.println("Resultado da Oeracao")

}


}


Nesse caso foi utilizado as classes Cliente, Adaptador e Resultado, para representadar o padrão Adapter.




Bibliografia

Christopher Alexander. A Pattern Language. Estados Unidos da América: Oxford University Press, 1977. ISBN 0195019199

JEEBrasil Padrão de projeto Adapter <http://www.jeebrasil.com.br/mostrar/38> Acessado em 16 de Abr de 2008.

Wikipedia Adapter <http://pt.wikipedia.org/wiki/Adapter> Acessado em 16 de Abr de 2008.

Nenhum comentário: