
Clique aqui para ler todos os artigos desta edição
Design Patterns Usados no .NET Framework
por Rob Pierry
|
Este artigo discute |
Este artigo usa as seguintes tecnologias: |
|
· padrões de desenho comuns usados dentro das classes .NET Framework · padrões usados para implementar o modelo de programação ASP.NET e request pipeline(linha de requisição) · como os padrões facilitam e agilizam as tarefas de programação |
Este artigo utiliza as seguintes tecnologias: .NET Framework e ASP.NET Download: DesignObservers.exe (122KB) |
|
Chapéu Design Patterns |
|
Recentemente, a Microsoft colocou uma crescente ênfase em desing patterns. Se não estivermos familiarizados com padrões, e formos assoberbados repentinamente com novas terminologias e diagramas UML de aparência estranha, podemos acabar subjugados. Porém, esta ênfase em padrões não representa tanto uma troca de metodologia, mas sim uma mudança de vocabulário. A base class library (BCL - biblioteca de classes base) do Microsoft .NET Framework, já faz uso extensivo de padrões, e provavelmente estamos familiarizados com os mais comuns, embora não o tenhamos percebido.
Neste artigo, faremos uma avaliação básica de vários padrões de desenho comuns e como eles são usados no BCL e outras áreas do .NET Framework. Assim fazendo, descobriremos alguns das motivos quanto ao modo como o .NET é projetado, assim como tornar mais intuitivamente compreensível os conceitos abstratos dos seus padrões.
A maioria dos padrões que estaremos abordando vem da referência canônica Design Patterns (Padrões de Desenvolvimento), por Erich Gamma , Richard Helm, Ralph Johnson e John Vlissides, (Addison-Wesley, 1995). Estes autores são coletivamente conhecidos como Grupo dos Quatro. O Grupo dos Quatro não inventou estes padrões, mas documentou e formalizou o bom trabalho que outros tinham realizado desde o começo do desenvolvimento de software.
Estando familiarizados com alguns destes padrões, estaremos à vontade para ler sobre aqueles com os quais não estamos familiarizados, pois cada seção é relativamente independente. A seção dos padrões relacionados com o ASP.NET requer familiaridade com os requisitos da qual faremos uma avaliação básica naquela seção.
Dentro do .NET Framework, o uso de alguns padrões é tão prevalecente que eles mesmos foram construídos em linguagem de programação, ao invés de representa-los pelas bibliotecas de classe. Os primeiros dois padrões que discutiremos - o Observator e o Iterator - são apoiados por várias características de linguagem tanto do C# quanto do Visual Basic .NET. Como veremos, estas são parte integrantes de muitas tarefas de programação comuns.
Observer Pattern
A boa prática de desenvolvimento orientada a objeto, enfatiza ambos o encapsulamento e acoplamento fraco. Em outras palavras, as classes devem manter seus detalhes internos privados e também devem minimizar suas interdependências. Na maioria das aplicações, as classes não trabalham em isolamento, mas interagem com muitas outras classes. Um cenário comum de interação de classes acontece quando uma classe (o Observador) precisa ser notificada de alguma mudança em outra (o Assunto). Por exemplo, vários controles de Windows® Forms poderiam ter que atualizar suas exibições depois do clique de um botão. Uma solução simples seria que o Assunto tenha na sua chamada, um método específico do Observador, sempre que uma mudança de estado acontece. Isto, no entanto, apresenta alguns problemas. Porém, desde que o Assunto precisa saber qual o método a ser chamado, teremos um acoplamento forte com aquele Observador específico. Além disso, se precisarmos adicionar mais de um Observador, teremos que continuar acrescentando código ao Assunto, para cada chamada de método. Se a quantidade de Observadores muda dinamicamente, isto se torna bem mais complexo. Terminaremos logo com um código confuso, frágil e difícil de manter.