Padrões de projeto (gof) Flashcards
Factory Method
Criação de objetos sem expor a lógica, desacopla a criação do objeto da sua implementação.
Abstract Factory
É uma fábrica de fábricas, parecido com Factory Method, mas ao invés de criar uma fábrica de um determinado tipo, cria uma fábrica de uma coleção de tipos.
Builder
Cria objetos complexos a partir de um objeto simples e utilizando métodos.
Prototype
Permite que um objeto seja capaz de lidar com sua própria cópia.
Singleton
Permite criar apenas uma única instância de uma classe.
Adapter
Permite que duas interfaces incompatíveis conversem entre si.
Bridge
Divisão de classes em abstração e implementação. Lembrar no caso dos círculos e retângulos, vermelho e azul.
Composite
Permite que a composição de objetos com seus próprios objetos seja facilitada. Um objeto saberá manusear seu próprio objeto.
Decorator
Permite estender um método de uma classe, dinamicamente, adicionando novas funcionalidades.
Facade
Permite criar uma fachada para lógicas complexas, facilitando a interação do usuário com uma funcionalidade complexa.
Flyweight
Permite a gerencia da quantidade de determinados objetos, utilizando o cache, para poupar recursos computacionais.
Chain of responsibility
Delega responsabilidade para outra classe na hierarquia, caso não seja capaz de lidar com alguma operação.
Command
Encapsula uma ação como um objeto.
Iterator
Permite percorrer coleções sem expor a implementação interna.
Mediator
Define um objeto geral que gerencia a comunicação entre diferentes partes do sistema.
Memento
Memoriza o estado de uma classe em determinados momentos.
Observer
Cria um relacionamento um-para-muitos, baseado em listener e publisher.
State
Realiza uma ação com a classe baseado em um estado de uma propriedade.
Strategy
Define uma família de algoritmos baseado no problema que se quer resolver.
Template Method
Reutilização de código através da partição de códigos.
Visitor
Permite que uma classe visite varias outras classes e execute uma determinada ação.
Proxy
Controla o acesso a um objeto, realizando novas operações desejadas.
Interpreter
Interpreta trechos de outras linguagens e executa alguma ação.