Neste post tenho como intuito fazer uma breve introdução com relação aos Padrões de Projeto ou Design Patterns.
Estas técnicas são extremamente importantes para o desenvolvedor de software orientado a objetos, pois a sua utilização na solução de problemas condizentes com o padrão, permitem o desenvolvimento de soluções robustas, com alto grau de reutilização e fácil manutenção.
Padrões de projeto ou Design Patterns, são soluções para problemas recorrentes, que ja foram testados e homologados, utilizados no desenvolvimento de software orientado a objeto. Basicamente os padrões são divididos em 3 tipos, sendo padrões de Criação, Estruturais e Comportamentais.
Os padrões de Criação visam solucionar problemas referentes a criação de objetos, que pode dificultar o desenho da aplicação e aumentar a complexidade do mesmo. Visam controlar a forma como os objetos são criados e o momento de sua instanciação, permitindo que o software se torne independente de todo este processo.
Os padrões Estruturais trabalham com a composição de classes ou Objetos para formação de estruturas maiores, descrevem formas de compor objetos para obtenção de novas funcionalidades, possibilidade para alterar a composição em tempo de execução, o que não é possível com uma hierarquia de classes, e utilizam herança para compor interfaces ou implementações .
Os padrões Comportamentais observam a maneira como as classes e objetos podem interagir, procupam-se com algorítimos e atribuição de responsabilidades entre os objetos, descreve tanto padrões de objetos e classes, como padrões de comunicação entre eles. Padrões comportamentais de classes utilizam herança para distribuir o comportamento entre classes e de Objetos utilizam composição em vez de herança para distribuir o comportamento entre objetos.
Neste primeiro post sobre o assunto vou exemplificar um padrão estrutural bastante conhecido, o Facade ou Fachada.
O Padrão Facade visa simplificar a utilização de um subsistema complexo implementando uma classe que fornece uma interface única e mais razoável. Quando você precisar dos recursos do subsistema complexo, eles continuarão existindo, mas, quando você precisar somente de uma interface simples, a Fachada desempenhará esse papel.
Uma definição mais técnica da Facade : Fornece uma interface unificada para um conjunto de interfaces em um subsistema. A Fachada define uma interface de nível mais alto que facilita a utilização do subsistema.
Abaixo segue um Diagrama demonstrativo do padrão :
(Clique na imagem para melhor visualização)
"Ninguém sabe tanto que não necessite aprender, ninguém sabe tão pouco que não possa ensinar. "
5 comentários:
Muito bom, padrões de projeto são muito uteis no dia a dia de um desenvolvedor OO, por ja terem sidos testados e validados para um deteminada situação e com isso facilitando o seu uso e reutilização...
Exatamente. Muito bem explicado este primeiro post. Podemos acrescentar que o padrão facede funciona como o um gerenciador de serviços proporcionando a comunicação fluente entre os niveis superiores e inferiores do sistema.
Isso aí Marcelo.
Apenas lembrando que mesmo sendo muito importantes, e de fato são, devemos tomar muito cuidado com a aplicação de padrões. Isso pode se tornar uma anti-padrão.
Abraços!!!
um facade é uma classe de entrada para um ponto do sistema? ele deve acessar as classes necessarias para isso?
para eliminar falhas temos que tornar um sistema robusto , para torna-lo esse uma maior complexidade de software que pode atrapalhar avanços futuros a nao ser que segue-se um projeto baseado em padroes ...interessante marcelo
abracos
Postar um comentário