Zusammenfassung der Ressource
Padrões de projeto
- Padrões de criação
- Abstract Factory
- Interface para criação de objetos
- relacionados
- dependentes
- usado quando:
- um sistema deve ser independente
- de como seus produtos são:
- criados
- compostos
- representados
- configuração de um sistema
- como um produto de uma família de múltiplos pordutos
- biblioteca de classes de produtos
- revele somente interfaces
- não suas implementações
- Factory Mehod
- define uma interface para criar um objeto
- deixa as subclasses decidirem que classe instanciar
- usado quando:
- uma classe não pode antecipar a classe de objetos que deve criar
- uma classe quer que suas subclasses especifiquem os objetos que criam
- classes delegam responsabilidade para uma dentre várias subclasses auxiliares
- Singleton
- Grante que uma classe tenha somente uma instância
- fornece um ponto global de acesso a mesma
- usado quando:
- for preciso haver apenas uma instancia de uma classe
- a única instância tiver de ser extensível através de subclasses
- Padrões estruturais
- Adapter
- Classe com interfaces incompatíveis trabalham em conjunto
- Converte a interface de uma classe em outra interface
- usar quando
- uma classe existe, mas sua interface não corresponde à interface de que se necessita
- criar uma classe reutilizável
- coopere com classes não-relacionadas ou não previstas
- precisar usar várias subclasses existenttes
- Composite
- Compõe objetos em estruturas de árvore para representar hierarquias parte-todo
- usar quando
- representar hierarquias parte-todo de objetos
- Proxy
- Fornece maqrcador da localização de outro objeto para controlar o acesso a esse objeto
- Aplicação
- Sempre que há necessidade de uma referência mais sofisticada
- Padrões Comportamentais
- Command
- Encapsula uma solicitação com um objeto
- Aplicação
- Especificar, enfileirar e executar solicitações em tempos diferentes
- Suportar desfazer operações
- Iterator
- Aplicação
- acessar os contéudos de um objeto agregado sem expor a sua representação interna
- suportar múltiplas percursos de objetos agregados
- suportar a iteração polifórmica
- Fornece um meio de acessar, sequencialmente, os elementos de um objeto agregador sem expor a sua representação subjacente
- Observer
- Define uma dependência um-para-muitos entre objetos
- Quando um objeto muda de estado todos os seus dependentes são notificados e atualizados
- Aplicação
- Quando uma mudança em um objeto exige mudanças em outros
- Quando um objeto deve ser capaz de notificar outros objetos sem fazer hipóteses ou usar informações
- Strategy
- Define uma família de algoritmos, encapsular cada uma delas e torná-los intercambiáveis
- Usado quando
- Muitas classes relacionadas diferem somente no seu comportamento
- Necessita de variantes de um algoritmo
- Um algoritmo usa dados dos quais os clientes não deveriam ter conhecimento
- uma classe define muitos comportamentos