DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 
DevWare  
Novidade: DevMedia lança o DevWare - Saiba mais!


  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Java Magazine DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!

Artigo Java Magazine 61 - Explicando Padrões de Projeto – Parte 3

Artigo da Revista Java Magazine Edição 61.

[fechar]

Você não gostou da qualidade deste conteúdo?

(opcional) Você gostaria de comentar o que não lhe agradou?

Esse artigo faz parte da revista Java Magazine edição 61. Clique aqui para ler todos os artigos desta edição

Explicando Padrões de Projeto – Parte 3

Soluções padronizadas para problemas recorrentes

Aprenda como utilizar Facades e Padrões Comportamentais para reduzir complexidade de uso de subsistemas e aumentar a flexibilidade de arquiteturas

 

De que se trata o artigo:

Uso dos padrões Facade, Template Method e Strategy. Neste artigo o Facade foi explicado e comparado em situações diferentes. Comparações e indicações de frameworks que utilizam o padrão Template Method foram utilizadas para facilitar seu entendimento, e por fim o Strategy foi abordado e exemplificado.

 

Para que serve:

Este artigo oferece informações ao desenvolvedor que podem auxiliá-lo a simplificar o acesso a subsistemas, além de desenvolver aplicações que sejam mais flexíveis. Utilizar os padrões abordados auxilia na busca por códigos mais simples, elegantes e reutilizáveis.

 

Em que situação o tema é útil:

Além de ser considerado uma boa prática de programação, o uso de Facades para reduzir o acoplamento e a complexidade para utilização de subsistemas aumenta a manutenibilidade do sistema. O Template Method é útil quando se quer dar a chance, ou exigir, de um desenvolvedor que certas customizações sejam feitas. Strategy exibe sua utilidade toda vez em que se faz necessário implementar diversas variações de comportamentos ou de algoritmos que podem ser utilizados por meio de uma interface padrão.

 

Explicando Padrões de Projeto – Parte 3:

Quando um sistema é composto por diversos subsistemas complexos é possível simplificar o acesso às funcionalidades utilizando Facades. Facades provêem interfaces simplificadas para isolar e facilitar o acesso a este tipo de sistemas.

Freqüentemente desenvolvedores e arquitetos desejam que a implementação de certas operações sejam delegadas, ou influenciadas, por desenvolvedores finais. Uma solução conhecida para este problema é definida no padrão Template Method, que permite definir partes do código que devem ser obrigatoriamente sobrescritas ou, ainda permitir, mas não obrigando a, que partes sejam modificadas pelo desenvolvedor.

Quando se faz necessário variar o comportamento de um sistema, ou de um algoritmo, mantendo uma interface padrão, é possível substituir condicionais encadeadas (ifs) que seriam utilizadas para escolher o comportamento adequado implementando o padrão Strategy. Desta forma o resultado é a produção de arquiteturas e códigos mais elegantes, eliminando o encadeamento de tais condicionais do código.

Nos três casos é possível observar ganhos do ponto de vista de Orientação a Objetos. Estes padrões, por exemplo, visam à redução de acoplamento. No caso de Template Method e Strategy há também ganhos no que se refere à coesão, uma vez que cada classe e/ou subclasse desempenham papéis mais bem definidos. Conseqüências decorrentes do uso destes padrões podem ser localizadas nos quadros resumo de cada um deles.

Padrões de Projeto: Trilhando o caminho

No artigo anterior desta série, os padrões de criação Abstract Factory e Factory Method foram apresentados. Neste artigo trabalharemos os padrões Façade, Template Method e Strategy, que constituem parte importante do catálogo de padrões proposto pela GoF. O uso destes padrões pode poupar trabalho, além de privilegiar a flexibilidade da arquitetura de sistemas.

Padrão: Façade

O principal objetivo de um Façade é facilitar o uso de um ou mais componentes de software. Isso é realizado por meio da construção de uma “fachada” que isola a aplicação cliente de toda a complexidade de um subsistema. O padrão Façade define uma interface de alto-nível que simplifica as chamadas a subsistemas complexos.

Basicamente, o padrão Façade propõe uma forma mais simples de interagir com o sistema que o modelo atual oferece. Claro, por ser mais simples, esta abordagem funciona quando o cliente precisa utilizar apenas um subconjunto dos recursos oferecidos pelo subsistema e/ou adaptá-lo para uso de uma maneira particular em suas necessidades.

Imagine o cenário: na empresa Acme Co. há uma plataforma complexa de APIs de cobrança, mas clientes externos precisam utilizar apenas parte dos seus recursos. Em vez de conhecer toda a complexidade da API de cobrança, seria adequado que os desenvolvedores disponibilizassem uma interface simples o suficiente para chamar os métodos que realizam as tarefas necessárias. A idéia é criar uma “fachada” que esconda toda a complexidade interna das APIs de cobrança. Dessa forma, os clientes da API de cobrança da Acme Co. ficarão agradecidos. A Figura 1 ilustra a solução do problema.

 

"

A exibição deste artigo foi interrompida.

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Java Magazine DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Graduado pela universidade Mackenzie, pós-graduado pela PUC, mestrando em Engenharia de Software e membro do grupo de pesquisa LabMed (Laboratório de Medidas de Arquitetura) pelo Instituto de Pesquisas Tecnológicas do Estado de São Paulo – IPT. Possui as certificações SCJA e SCJP. Instrutor na Globa...
O que você achou deste post?

    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03