Este artigo procura discutir o uso de padrões de projeto (do inglês, Design Patterns) em aplicações de software, apresentando para isto como os padrões conhecidos como Strategy e Façade podem ser empregados na construção de sistemas flexíveis e bem estruturados.
Em que situação o tema é útil
Design patterns são técnicas concebidas para a solução de problemas inerentes à construção de softwares. O pattern conhecido como Strategy é uma alternativa que pode ser empregada, via de regra, em situações que envolvam comportamentos variáveis para um determinado aspecto. Já o padrão Façade tem por finalidade simplificar operações complexas que envolvam a utilização de diferentes objetos ao mesmo tempo, de forma que classes consumidoras que dependam disto estejam isentas de conhecer a fundo todos os detalhes necessários.
Utilizando os padrões de projeto Strategy e Façade
No geral, os padrões Strategy e Façade são aplicados, respectivamente, no tratamento de comportamentos variáveis e na simplificação de construções que manipulem diversos tipos de objetos e operações.
Muitos desenvolvedores acabam se deparando, ao longo de uma série de projetos, com determinadas situações que se repetem com frequência. Em muitos destes casos é possível que outros profissionais já tenham passado por circunstâncias semelhantes e, a partir disso, disponibilizado soluções que buscam resolver estas questões.
Tais soluções são conhecidas como design patterns (padrões de projetos), sendo normalmente voltadas à solução de problemas específicos dentro do desenvolvimento de software. Tomando-se por base um aspecto que varia dentro de uma aplicação, o pattern Strategy é uma técnica que fornece meios para o controle dos diversos comportamentos possíveis neste caso. O padrão Façade, por outro lado, encapsula a complexidade advinda da interação entre uma série de objetos, facilitando assim o acesso de classes consumidoras a tais operações.
Design patterns (termo conhecido também em português como “padrões de projetos”) são técnicas concebidas com a finalidade de resolver problemas específicos que podem, por sua vez, aparecer com certa frequência em atividades relacionadas ao desenvolvimento de sistemas. A adoção de padrões procura fornecer, via de regra, meios para o reuso de soluções de software cuja validade já foi comprovada anteriormente.
Mudanças serão sempre uma constante dentro do desenvolvimento de software. Alterações em atendimento a uma nova demanda de negócio ou mesmo a evolução de funcionalidades pré-existentes são aspectos com os quais os envolvidos em projetos de sistemas sempre irão se deparar. Além disso, novas soluções de software são criadas a todo momento, sendo isto uma causa direta do cenário de mudanças constantes em que estão envoltas as organizações.
Design patterns podem, em ambas as situações relatadas, fornecer meios para uma melhor estruturação de aplicações, flexibilizando o desenvolvimento e auxiliando de maneira significativa para tornar mais simples futuras atividades de manutenção.
Muitos dos padrões de projeto empregados no desenvolvimento de software fazem uso de conceitos de orientação a objetos, sendo que o correto uso dos mesmos contribui para a assimilação de boas práticas OO na construção de sistemas.
É importante frisar que design patterns não são técnicas restritas a uma determinada plataforma ou linguagem de programação. Por serem soluções gerais em resposta a necessidades de projetos, bem como representarem experiências comprovadas e bem sucedidas, muitos padrões podem estar sendo empregados normalmente em linguagens como Delphi, C#, VB.NET, Java etc.
Levando em conta a ampla diversidade de tipos de aplicações de software existentes atualmente, não é de se admirar que tenham sido desenvolvidos patterns para os mais diferentes tipos de situações. Os esforços para a determinação de padrões iniciaram-se na área de software, ainda na década de 90, com a publicação de 23 padrões conhecidos como GoF.
A finalidade deste artigo é apresentar algumas das vantagens do uso de patterns na construção de aplicações. Além disso, serão abordados 2 padrões GoF: Strategy e Façade. O pattern Strategy permite que se separem comportamentos variáveis em classes que encapsulam os algoritmos correspondentes, dispensando com isto a necessidade dos consumidores de uma funcionalidade conhecerem a fundo todas os comportamentos possíveis para a mesma. Já o padrão Façade possibilita que um conjunto de ações envolvendo diversos objetos possa ser encapsulado, de forma que os utilizadores da funcionalidade em questão não precisem realizar uma série de ações complexas para produzir o efeito esperado.
...