Buscar

RELAÇÕES ENTRE PADRÕES DE PROJETO TALP

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Universidade Federal do Maranhão – UFMA
Centro de Ciências Exatas e Tecnológicas – CCET
Curso de Ciência da Computação
Disciplina: Tópicos Avançados em Linguagem de Programação
Aluno: Mayckerson Alexandre Franco Santos – CP 99111-19
Trabalho referente à 2ª Avaliação
RELAÇÕES ENTRE PADRÕES DE PROJETO
Factory Method
	O padrão Factory é útil para se construir objetos individuais, para um propósito específico, sem que a construção requeira conhecimento das classes específicas sendo instanciadas. Se você precisar criar um grupo combinado de tais objetos, então o padrão Abstract Factory é o mais apropriado.
	São usualmente chamados dentro de Template Methods.
Abstract Factory
	Parece semelhante ao padrão Factory Method, mas em vez do cliente (que quer criar objetos sem saber as classes exatas) chamar um método de criação (Factory Method), ele de alguma forma possui um objeto (uma Abstract Factory) e usa este objeto para chamar os métodos de criação. Onde Factory Method quer que você seja diferente (via herança) para criar objetos diferentes, o Abstract Factory quer que você tenha algo diferente. 
	As classes Abstract Factory normalmente são implementadas com Factory Methods, mas podem também ser implementados usando Prototype. Se tivermos muitas famílias de produtos, teríamos um excesso de classes “fábricas concretas”. Para resolver este problema, podemos usar o Prototype: criamos um dicionário mapeando tipos de produtos em instâncias prototípicas destes produtos. Então, sempre que precisarmos criar um novo produto pedimos à sua instância prototípica que crie um clone. Isto é particularmente importante em linguagens não dinâmicas como C++ e em linguagens "semi-dinâmicas" como Java. Em Smalltalk, não é tão relevante.
	Uma classe do tipo Concrete Factory frequentemente é um Singleton para garantir sua instanciação única.
Builder
	Abstract Factory é semelhante a Builder no sentido de que também pode construir objetos complexos. A diferença prinicipal é que o padrão Builder focaliza a construção de um objeto complexo passo a passo. A ênfase do Abstract Factory é sobre as famílias de objetos-produtos (simples ou complexos). O Builder retorna o produto como um passo final, mas no caso do padrão Abstract Factory o produto é retornado imediatamente.
	Um padrão Composite é o que frequentemente o Builder constrói.
Singleton
	Muito patterns, como o Abstract Factory e o Builder podem ser implementados usando o pattern Singleton, para garantir apenas uma instância da classe.
Iterator
	Iterators são frequentemente aplicados a estruturas recursivas tais como o Composite (usado para percorrer).
	Iterators polimórficos delegam aos Factory Methods a instanciação da subclasse do Iterator apropriado.
Strategy
	Um Strategy permite uma mudança no seu funcionamento interno. Um Decorator permite agregar uma mudança à “superfície” de um objeto. Essas são as duas maneiras de mudar o comportamento de um objeto.
Template Method
	Factory Methods são frequentemente chamados de Template Methods.
	Template Methods usam herança para variar partes de um algoritmo. Strategies usam delegação para variar todo o algoritmo.
Composite
	O padrão Decorator é freqüentemente usado com o padrão Composite. Quando decoradores e compostos são usados juntos, eles têm nornalmente uma classe-mãe comum. Assim, decoradores terão que suportar a interface de componente.
	O padrão Iterator pode ser usado para percorrer os compostos.
Decorator
	Um Decorator poderia ser visto como um Composite simplificado que tem apenas um Component. Contudo, ele adiciona novas responsabilidades; Ele não tem como intenção a agregação de objetos.
Proxy
	Embora o Decorator tenha implementações similares a do Proxy, ele tem um propósito diferente. O Decorator adiciona uma ou mais responsabilidades ao objeto, enquanto o Proxy controla o acesso ao objeto,.
	O Proxy varia o grau em que é implementado como o Decorator. Um Protection Proxy deve ser implementado exatamente como um Decorator. Já um Remote Proxy não deverá conter uma referência direta a sua classe Subject, apenas uma referência indireta. Um Virtual Proxy deverá se iniciar com uma referência indireta, tal como um nome de arquivo, mas eventualmente irá obter e usar uma referência direta.

Outros materiais