Mind map
Designer Patterns GRASP
Map content
Designer Patterns GRASP
Padrões de criação
- Builder – Esse padrão tem como princípio a separação de um objeto complexo de sua representação, criando diferentes representações no processo de construção.
- Abstract Factory: Consiste na criação de objetos afins, por meio de interface, sem a especificação de uma classe concreta. A aplicabilidade desse padrão deve ser feita quando existir a independência da forma como seus produtos são criados, representados ou mesmo compostos.
- Factory Method – Este padrão de projeto tem como intenção a definição de interface para a criação de um objeto, mas deixa para as suas subclasses a decisão de qual a melhor classe a ser instanciada. Ele permite o adiamento da instanciação para subclasses.
- Prototype – Este padrão de projeto tem como intenção a especificação dos tipos de objetos a serem criados, usando uma instância prototype e permitindo a criação de novos objetos a partir da cópia desse protótipo.
- Singleton – O padrão de projeto Singleton garante que apenas uma instância de classe exista no sistema; assim, o acesso ao objeto é mantido em um único local no sistema
Padrões de Estruturais
- Adapter – Esse padrão adapta uma interface. Faz com que classes previamente incompatíveis possam interagir. Assim, um objeto pode obter serviços de objetos de interfaces diferentes por meio de uma interface em comum.
- Bridge – Este padrão tem como intenção o desacoplamento do que foi abstraído de sua implementação, tornando as duas partes independentes nas suas variações. Ele deve ser utilizado quando se pretende evitar um vínculo permanente entre o que foi abstraído e o que foi implementado, para permitir mudanças no tempo de execução ou seleção.
- Composite – A intenção desse padrão é a composição dos objetos em estruturas do tipo árvore, com hierarquias parte-todo, permitindo aos clientes tratarem os objetos individuais de maneira uniforme. Esse padrão é aplicável quando se tiver a intenção de que os clientes sejam capazes os objetos dentro uma estrutura composta de maneira uniforme, ou seja, não é visível a diferença entre objetos individuais e a composição de objetos.
- Decorator – Este padrão de projeto é utilizado com a intenção de agregação de responsabilidades a um objeto dinamicamente, fornecendo uma alternativa flexível com o uso das subclasses, visando estender as funcionalidades. Ele é aplicável quando existe a necessidade de atribuir responsabilidades individuais a objetos individuais de forma transparente e dinâmica, sem afetar o funcionamento dos outros objetos.
- Façade – Fachada do francês – Façade – é um padrão que define um objeto fornecedor de vários serviços por meio de uma interface. A aplicabilidade desse padrão é quando existe o desejo de fornecimento de uma interface simples para um sistema complexo. Outra aplicabilidade é quando existe o desejo de estruturação dos seus sistemas em subcamadas.
- Flyweight – Este padrão de projeto tem a intenção de utilização de compartilhamento para suportar de forma eficiente grandes quantidades de objetos que sejam de granularidade fina, ou seja, onde existem muitas comunicações entre processos.
- Proxy – Este padrão de projeto tem como intenção o fornecimento de um substituto ou um marcador de utilização de outro objeto, visando controlar os eventuais acessos realizados ao mesmo.
Padrões Comportamentais
- Chain of Responsability – Este padrão de projeto significa que uma cadeia de objetos tem que processar e tratar de diversas solicitações diferentes. Ele serve para evitar o acoplamento entre o remetente e o receptor, ao fornecer quando recebe múltiplos objetos para tratar a solicitação, encadeando esses objetos receptores tratando a cadeia até que cada objeto seja tratado.
- Command – Este padrão de projeto tem a intenção de encapsulamento das solicitações como objetos, permitindo a parametrização de clientes que tenham diferentes solicitações, enfileirando e fazendo o registro de solicitações e suportando operações que são passíveis de desfazimento.
- Interpreter – Este padrão de projeto tem a intenção de decodificação a partir da linguagem utilizada, transcrevendo a codificação para a linguagem definida para tradução.
- Iterator – Este padrão de projeto tem a intenção de fornecimento de meio de acesso sequencial aos elementos que compõem um elemento agregador, sem expor a sua representação subjascente
- Mediator – Este padrão de projeto tem como intenção a definição de um objeto que encapsula a forma como determinados objetos realizam a sua interação. Ele promove o acoplamento fraco, evitando que os objetos se refiram uns aos outros de forma explícita, variando as suas interações de forma independente.
- Memento – Este padrão de projeto tem a intenção de capturar e externalizar o estado interno de um objeto, de tal forma que esse objeto possa ter seu estado restaurado posteriormente, sem que haja uma violação do encapsulamento.
- Observer – A intenção desse padrão de projeto é permitir que um objeto, quando mudar de estado – atualizar valores dos atributos – notifique outros objetos interessados. Em outras palavras, ele permite uma dependência de um para muitos entre objetos, de tal forma que quando um objeto tem seu estado alterado, os demais objetos são atualizados automaticamente.
- State – Este padrão de projeto tem como intenção a permissão de que um objeto possa alterar o seu comportamento a partir do momento que o seu estado interno sofra mudança. Nesse momento, o objeto dá a impressão de que teve uma alteração em sua classe
- Strategy – Este padrão de projeto tem como intenção a definição de uma família de algoritmos, encapsulando cada uma delas, tornando-as intercambiáveis, permitindo que esses algoritmos variem, independentemente dos clientes que os utilizam.
- Template Method – Este padrão de projeto tem como intenção a definição de um esqueleto de um determinado algoritmo em uma operação, postergando alguns passos para as demais subclasses. Ele permite que as subclasses consigam redefinir determinados passos de um algoritmo, não mudando as estruturas dos mesmos.
- Visitor – Este padrão de projeto tem como intenção a representação de operações a serem executadas nos elementos que compõem a estrutura de objetos. Ele permite definir uma nova operação, não mudando as classes dos elementos sobre os quais está operando.
Information
- Description
- Mind Map on Designer Patterns GRASP, created by Waldemar Henrique on 23/06/2018.
- Created by
- Waldemar Henrique · Jun 2018
- Updated
- Jun 23, 2018
- Views
- 0
- Rating