Padrões de projeto de softwareGOF

Classificação dos 23 padrões de projeto (design pattern) de software, segundoGoF” (Gang of Four).

Na prática

A ideia aqui é mostrar quais são e como se classificam os padrões de projeto, pois isto por si só já pode ser muito útil para resolver grande parte das questões de concurso público, veja só:

Ao alterar o estado de uma classe, o desenvolvedor deseja que uma ou mais classes da interface gráfica sejam modificadas. Entretanto, o desenvolvedor não acha interessante criar um acoplamento forte entre essas classes. Qual padrão de projeto comportamental é mais adequado para resolver essa situação?
( ) Composite
( ) Adapter
( ) Observer
( ) Abstract Factory
( ) Decorator

Talvez a questão pareça até exigir conhecimentos mais profundos, mas note que se você apenas soubesse a classificação, já poderia acertá-la com toda convicção. O detalhe está na trecho que pede o padrão de projeto comportamental, e só existe uma alternativa que se enquadra, o padrão Observer. Questão resolvida, facilmente!

Na teoria

A tabelinha é esta:



Perceba que o padrão Adapter é o único aplicado tanto para classes como para objetos, razão pela qual a tabela apresenta 24 classificações (e não 23).

Decoreba

Decorar pode não ser a melhor maneira de se aprender, mas com tanta coisa para estudar, essa dica pode lhe salvar na horaH”. Um jeito fácil de decorar esses padrões é através de mnemônicos. No blog de Rogério Araújo tem uma forma bem criativa, em que você decora apenas duas frases e já consegue fazer uma boa classificação, ສະນັ້ນ:

Padrões de CRIAÇÃO (5)

Uma fábrica abstrata constrói um protótipo único!

ການແປພາສາ: Uma fábrica (Factory Method) abstrata (Abstract Factory) constrói (Builder) um protótipo (Prototype) único (Singleton).

Padrões ESTRUTURAIS (7)

A ponte adaptada ມັນເປັນ composta ຂອງ decorações na fachada para o peso mosca se “aproxymar”!

ການແປພາສາ: A ponte (Bridge) adaptada (Adapter) é composta (Composite) de decorações (Decorator) na fachada (Façade) para o peso mosca (Flyweight) se “aproxymar” (Proxy).

Padrões COMPORTAMENTAIS (11)

Aprendendo quem são os padrões de criação e os estruturais, o restante são padrões comportamentais.

Conceitos

(indo além)

1

Adapter

(Estrutural)

Converter a interface de uma classe em outra interface, esperada pelos clientes, permitindo que classes com interfaces incompatíveis trabalhem em conjunto, o que, de outra forma, seria impossível.

2

Façade

(Estrutural)

Oferecer uma interface única de nível mais elevado para um conjunto de interfaces de um subsistema. ໃນຄໍາສັບຕ່າງໆອື່ນໆ, apresenta uma interface para várias funcionalidades de uma API (coleção de classes) de maneira simples e fácil de usar.

3

Composite

(Estrutural)

Permitir o tratamento de objetos individuais e composições desses objetos de maneira uniforme.

4

Bridge

(Estrutural)

Desacoplar (separar) uma abstração de sua implementação para que ambas possam variar independentemente.

5

Singleton

(Criação)

Garantir que uma classe só tenha uma única instância e prover um ponto de acesso global a ela.

6

Observer

(Comportamental)

Definir uma dependência um-para-muitos entre objetos para que quando um objeto mudar de estado, os seus dependentes sejam notificados e atualizados automaticamente.

7

Mediator

(Comportamental)

Definir um objeto que encapsula a forma como um conjunto de objetos interagem.

8

Proxy

(Estrutural)

Prover um substituto ou ponto através do qual um objeto possa controlar o acesso a outro. Também é conhecido como surrogate.

9

Chain of Responsibility

(Comportamental)

Compor objetos em cascata para, através dela, delegar uma requisição até que um objeto a sirva. Isto evita o acoplamento entre o remetente de uma solicitação e seu destinatário, dando oportunidade para mais de um objeto tratar a solicitação.

10

Flyweight

(Estrutural)

Usar compartilhamento para suportar eficientemente grandes quantidades de objetos complexos (granularidade fina).

11

Builder

(Criação)

Separar a construção de um objeto complexo da sua representação de modo que o mesmo processo de construção possa criar diferentes representações.

12

Factory Method

(Criação)

Definir uma interface para criar um objeto mas deixar que subclasses decidam que classe instanciar. Permite adiar a instanciação para subclasses.

13

Abstract Factory

(Criação)

Prover interface para criar famílias de objetos relacionados ou dependentes sem especificar suas classes concretas.

14

Prototype

(Criação)

Especificar tipos a criar usando uma instância como protótipo e criar novos objetos ao copiar este protótipo.

15

Memento

(Comportamental)

Armazenar o estado interno de um objeto para que ele possa ter seu estado restaurado posteriormente (undo).

16

Template Method

(Comportamental)

Definir o esqueleto de um algoritmo dentro de uma operação, deixando alguns passos serem preenchidos pelas subclasses. Permite que suas subclasses redefinam certos passos de um algoritmo sem mudar sua estrutura.

17

State

(Comportamental)

Permitir a um objeto alterar o seu comportamento quanto o seu estado interno mudar.

18

Strategy

(Comportamental)

Definir uma família de algoritmos, encapsular cada um e fazê-los intercambiáveis.

19

Command

(Comportamental)

Encapsular requisição como objeto, para clientes parametrizarem diferentes requisições.

20

Interpreter

(Comportamental)

Dada uma linguagem, definir uma representação para sua gramática por meio de um interpretador.

21

Decorator

(Estrutural)

Anexar responsabilidades adicionais a um objeto dinamicamente.

22

Iterator

(Comportamental)

Prover uma maneira de acessar elementos de um objeto agregado seqüencialmente sem expor sua representação interna.

23

Visitor

(Comportamental)

Representar uma operação a ser realizada sobre os elementos de uma estrutura de objetos. Permite definir uma nova operação sem mudar as classes dos elementos nos quais opera.

 

ແຫຼ່ງ

Rogério AraújoVida, TI e Concursos

ຈໍານວນທັງຫມົດ: 3671

ອອກຈາກ Reply ເປັນ

ທີ່ຢູ່ອີເມວຂອງທ່ານຈະບໍ່ໄດ້ຮັບການຈັດພີມມາ. ທົ່ງນາທີ່ກໍານົດໄວ້ແມ່ນຫມາຍດ້ວຍ *