18. Observer
"O padrão Observer define uma dependência de
um-para-muitos entre objetos, onde os
observadores serão notificados sobre mudanças
no estado interno do objeto central."
20. Resumão
● Acoplamento fraco;
● Possui implementação nativa em várias
linguagens modernas;
● Normalmente usado com o padrão MVC
para a comunicação entre suas camadas;
● Auxilia na comunicação de objetos distantes;
● É Async provavelmente tem ele!
21. Adapter
"O padrão Adapter (também chamado de Wrapper),
é usado para conectar diferentes interfaces de
forma consistente. Ele provê uma interface
compatível com o código-cliente usando
internamente a interface original."
23. Resumão
● Mesmo princípio dos adaptadores de
tomadas elétricas;
● É uma caixa preta capaz processor um input
para produzir o output desejado;
● Facilita a conversão de tipos e a integração
entre diferentes bibliotecas.
24. Factory
"O padrão Factory é responsável pela criação de
objetos. Ele pode fornecer uma interface para
criação de famílias de objetos sem a necessidade
de especificar sua classe concreta"
26. Resumão
● Comum em bibliotecas de GUI - onde todos
elementos possuem a mesma interface,
embora o comportamento interno seja
particular a cada um
● É normal aparecer junto de outros padrões
de projeto (strategy, dependency injection,
etc)
● Auxilia na implementação de testes
automatizados
● É o cara para criar objetos dinâmicamente!
27. Iterator
"O padrão Iterator permite a iteração entre os
elementos de uma coleção qualquer, sem levar em
consideração sua implementação e/ou como esses
dados são armazenados."
29. Resumão
● Interface única e simplificada para iterar
sobre todos elementos de uma coleção
● A estrutura interna, usada para armazenar
os itens da coleção, torna-se irrelevante
para o programador-usuário
● Possibilita a criação de Coleção de Objetos
ao invês de uso de tipos nativos (array,
map);
30. MVC
"Model-view-controller é um padrão de projeto que
visa modularizar o sistema em três partes
independentes: model (dados/informação),
controller (lógica da aplicação) e view (interação
com o usuário)."
32. Resumão
● Separa as camadas de negócio da
sua aplicação;
● Foi idealizado para lidar com
pequenas camadas!
● Mal compreendido pela sociedade
programadora!
33. Proxy
"Um proxy, em sua forma mais geral, é uma classe
que funciona como uma interface para outra classe.
A classe proxy poderia conectar-se a qualquer
coisa: uma conexão de rede, um objeto grande em
memória, um arquivo, ou algum recurso que é difícil
ou impossível de ser duplicado." Wikipédia
35. Resumão
● LazyLoad é com ele!
● Auxilia acesso remoto de classes;
● Operações custosas, vão começar a
custar barato :)
● Null pattern pode ser com ele
também!
36. Singleton
"O Singleton é uma classe de uma instância única
com um ponto de acesso global. Seu objetivo é ser
um objeto "solitário", independente do ciclo de vida
da aplicação."
38. Resumão
● Não é o mesmo que uma classe com
métodos estáticos
● Classe de um único objeto
● Amplamente usada com bibliotecas de
logging/debugging
● Controverso, muitas vezes considerado um
anti-pattern
● É um inferno para testar!
39. Dependecy Injection
"O modelo isola a "lógica" (A lógica da aplicação) da
interface do usuário (Inserir e exibir dados),
permitindo desenvolver, editar e testar
separadamente cada parte." Wikipédia
41. Resumão
● Esse cara sou eu (DI)!
● Chega a nem ser um padrão de tão simples!
● Torna seu código testável e auxilia no
desacoplamento do código (avoid no new)
●
DIC ajudam na instância de objetos com
multiplas depêndecias (aninhados)
●
49. você também pode criar os seus!
Nome: Hack Thursday
Exemplo: Apresentação de Hoje
Contexto: Aplicável todas as quintas
Problema: Sede de "conhecimento"
Solução: Vir todas as quintas
50.
51. lembre é Orientação a Objetos não a Classes .
"Herança pode ser o câncer do seu código!" by Nós