Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Design Patterns "Cada Pattern descreve um problema o qual ocorre repetidamente em nosso ambiente, e então descreve um conjunto de soluções para este problema, de maneira que você possa usar esta solução um milhão de vezes, sem o fazer da mesma maneira duas vezes." 1 Design Patterns Como Tudo Começou? A Gangue dos Quatro - GOF Design Patterns Criacionais Design Patterns Estruturais Design Patterns Comportamentais. Design Patterns Assim como na Engenharia Civil, há normas muito bem elaboradas e definidas de que forma que toda construção obrigatoriamente siga as determinações destas normas. No mundo da informática, mais precisamente na orientação a objetos não é diferente. Design Patterns, ou simplesmente “Padrões de Projeto” incentiva o reuso de elementos recorrentes na programação, ou seja, por que reinventar a roda? Alguém já resolveu os seus problemas! Como Tudo Começou? Tudo começou através de um Austríaco chamado Christopher Alexander, professor na Universidade da Califória em Berkeley. Dentre suas inúmeras obras criou o conceito de linguagem em padrões. Sua área é a Engenharia Civil, onde ele percebeu que na construção de edifícios, havia características recorrentes, que resolveu catalogar em seu livro “The Timeless Way of Building”. A Gangue dos Quatro Em 1994, liderados por Erich Gamma a GoF (Gang of Four) - Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides publicaram o livro que deu origem à onda dos Patterns na área de informática, Design Patterns: Elements of Reusable Object-Oriented Software. O primeiro catálogo bem descrito sobre patterns de projeto para programas orientados a objetos. Após isto, seguiram outros livros de outros autores, publicações, papers, conferências, entre outros. Patterns Criacionais Padrões criacionais abstraem o processo de instanciação, ajudam a criar um sistema independente de como o objeto é criado, composto e representado. Singleton Assegura que uma classe possua somente uma instância e fornecer um ponto global de acesso a essa instância. [GoF] Factory Fornece uma classe de decisão, na qual retorna uma das muitas possíveis subclasses de uma classe base abstrata, dependendo do dado fornecido. [GoF] Este tipo de pattern elimina instanciações concretas no código, reduzindo problemas com manutenções no código. Abstract Factory Fornece uma interface para criar famílias de objetos relacionados ou dependentes, sem especificar suas classes concretas. [GoF] Este pattern pode em certo ponto se parecer com o Factory. O Abstract Factory acrescenta uma maior abstração, estabelecendo classes “Fabrica Abstratas” que criam uma independência das classes concretas. Abstract Factory Builder Separa a construção de um objeto complexo de sua representação, de modo que o mesmo processo de construção possa criar diferentes representações. [GoF] Facilita o processo de criação de objetos que exigem grande parametrizacão, ou seja, o Builder faz o trabalho desta construção pra nós. Prototype Especifica o tipo de objeto a criar através de uma instância protótipo e cria novos objetos através da cópia deste protótipo. [GoF] Utilizado no processo de clonagem de objetos. Patterns Estruturais Padrões estruturais definem como as classes e os objetos são compostos para dar forma a estruturas maiores. Adapter Converte a interface de uma classe em uma outra interface que os clientes desejem. [GoF] O Adapter permite que essas classes trabalharem juntas, as quais de outra forma não o poderiam, devido a interfaces incompatíveis. Composite Muito usado na arquitetura da VCL, como por exemplo, no componente TMenu com seus itens TMenuItems. Façade Fornece uma interface unificada para um conjunto de interfaces de um subsistema. [GoF] O Façade define uma interface de mais alto nível, tornando assim mais fácil utilizar o subsistema. Proxy Fornece um substituto ou representante de outro objeto para controlar o acesso a ele. [GoF] Patterns Comportamentais Iterator Fornece uma forma de acessar elementos de um objeto agregado sequencialmente sem expor sua representação. [GoF] Observer Define uma dependência um-para-muitos entre objetos, para que quando um objeto mude de estado, todos os seus dependentes sejam notificados e se atualizem automaticamente. [GoF] State Permite um objeto alterar seu comportamento quando o estado interno dele mudar. [GoF]. Template Method Define o esqueleto de um algoritmo em uma operação, delegando alguns passos às subclasses. Template Method deixa subclasses redefinirem certos passos de um algoritmo sem modificar a estrutura do algoritmo.[GoF]
Compartilhar