Buscar

03 Design Patterns

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]

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais