O documento discute dois padrões de projeto - Observer e Prototype. Observer permite que objetos sejam notificados automaticamente quando outro objeto muda de estado. Prototype permite a criação eficiente de novos objetos duplicando objetos existentes armazenados em cache. O documento também traça a história do conceito de padrões de projeto desde os anos 1970.
2. O que são?
Design Patterns são padrões usados no desenvolvimento de
sistemas. Esses padrões surgiram da necessidade de se
resolver problemas frequentes nos códigos. Percebeu-se que
algumas dessas soluções poderiam ser testadas em
problemas semelhantes a fim de serem padronizadas e
documentadas para reutilização em problemas futuros.
3. Christopher Alexander
O conceito Design Patterns surgiu na década de 1970,
quando o arquiteto Christopher Alexander publicou os seus
livros “Notes on the Synthesis of Form, The Timeless Way of
Building e A Pattern Language”.
4. Gang of four
Design Patterns: Elements of Reusable Object-Oriented Software (1994) é um livro
de engenharia de software descrevendo padrões de projeto de software. O livro foi
escrito por Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides,
conhecidos como Gang of Four
5. Observer [Behavioral]
● Dependência 1 => n
● Quando um objeto muda o estado, todos seus
dependentes são notificados e atualizados
automaticamente.
● Também conhecido como Publisher-Subscriber, Event
Generator e Dependents.
6. Motivação
Um objeto precisa permitir que seus elementos sejam
acessados sem que a sua estrutura interna seja exposta.
● Os observadores (observers) devem conhecer o objeto de
interesse.
● O objeto de interesse (observable) deve notificar os
observadores quando for atualizado.
7.
8. Prototype [Creational]
● Criação de objetos duplicados, focado no desempenho.
● É uma das melhores maneiras de criar um objeto.
● Mais eficiente que o new
9. Funcionamento
● Uma instância do objeto fica armazenada em cache;
● Quando necessário, o objeto é copiado (deep copy);