A partir daqui escreverei alguns assuntos relacionados a padrões de projeto. Estou aprendendo e vou aproveitando e repassando. Segue então um primeiro resumo sobre alguns tipos de padrões já existentes e o qual seu objetivo. De acordo com GAMMA et. al. (2000) temos:
Abstract Factory(kit): A ideia principal no desenvolvimento é visualizar a interação com as classes abstratas sem se preocupar com implementação das classes concretas. Ele também é aplicável ao desenvolvimento de ambientes regularizando e/ou formatando a maneira como será o layout. Bom, neste link do Wikipédia tem um exemplo legal para clarear um pouco mais a ideia: Abstract Factory. Percebam que no exemplo da wiki, o foco está na criação de classes abstratas e as subclasses são concretas implementando as operações.
Segundo GAMMA (2000), podemos usar o Abstract Factory em: sistemas que precisam ser independentes de como são criados; configurado como um produto de múltiplas famílias de múltiplos produtos; garantir restrição de uso em um conjunto de objetos de uma família; proteger implementação podendo mostrar apenas as interfaces.
Vantagens e desvantagens: Isola as classes concretas ajudando a controlar as classes de objetos criadas por uma aplicação; torna fácil a troca de família de produtos, pois é possível usar diferentes configurações apenas trocando fábrica concreta por outra; harmonia entre os produtos propicia o uso de objetos de apenas uma família de produtos por vez; difícil de suportar novos produtos, já que a interface de abstractFactory fixa o conjunto de produtos que podem ser criados necessitando alterar todas suas subclasses.
Adapter ou Wrapper: este padrão permite certas classes trabalharem em conjunto. Ele unifica diferentes interfaces em uma. Adapter.
Esse padrão pode ser usado quando você tem uma classe, porém a interface dela não corresponde à que você precisa; trabalhar com cooperação entre classes com interfaces não compatíveis;
Vantagens e desvantagens: o volume de trabalho de adaptação vai depender da similaridade entre as classes a serem adaptadas; a adaptação de interfaces nos permite incorporar uma classe a um sistema qualquer que esteja esperando interfaces distintas para a classe; adaptadores normalmente não são transparentes para os clientes, ou seja, de certa forma ele esconde o código original. Contudo, adaptadores de dois sentidos (two-way-adapters) resolvem esse problema.
Continuarei postando os conceitos básicos.
Abstract Factory(kit): A ideia principal no desenvolvimento é visualizar a interação com as classes abstratas sem se preocupar com implementação das classes concretas. Ele também é aplicável ao desenvolvimento de ambientes regularizando e/ou formatando a maneira como será o layout. Bom, neste link do Wikipédia tem um exemplo legal para clarear um pouco mais a ideia: Abstract Factory. Percebam que no exemplo da wiki, o foco está na criação de classes abstratas e as subclasses são concretas implementando as operações.
Segundo GAMMA (2000), podemos usar o Abstract Factory em: sistemas que precisam ser independentes de como são criados; configurado como um produto de múltiplas famílias de múltiplos produtos; garantir restrição de uso em um conjunto de objetos de uma família; proteger implementação podendo mostrar apenas as interfaces.
Vantagens e desvantagens: Isola as classes concretas ajudando a controlar as classes de objetos criadas por uma aplicação; torna fácil a troca de família de produtos, pois é possível usar diferentes configurações apenas trocando fábrica concreta por outra; harmonia entre os produtos propicia o uso de objetos de apenas uma família de produtos por vez; difícil de suportar novos produtos, já que a interface de abstractFactory fixa o conjunto de produtos que podem ser criados necessitando alterar todas suas subclasses.
Adapter ou Wrapper: este padrão permite certas classes trabalharem em conjunto. Ele unifica diferentes interfaces em uma. Adapter.
Esse padrão pode ser usado quando você tem uma classe, porém a interface dela não corresponde à que você precisa; trabalhar com cooperação entre classes com interfaces não compatíveis;
Vantagens e desvantagens: o volume de trabalho de adaptação vai depender da similaridade entre as classes a serem adaptadas; a adaptação de interfaces nos permite incorporar uma classe a um sistema qualquer que esteja esperando interfaces distintas para a classe; adaptadores normalmente não são transparentes para os clientes, ou seja, de certa forma ele esconde o código original. Contudo, adaptadores de dois sentidos (two-way-adapters) resolvem esse problema.
Continuarei postando os conceitos básicos.


