Você está na página 1de 2

Prototype

O Prototype como um padrão que especifica os tipos de objetos a serem criados


utilizando um protótipo. Ele fornece um método alternativo para instanciar novos
objetos através da cópia ou clone de uma instância existente. A criação de uma nova
instância é bastante custosa, assim esse padrão ajuda a resolver esse problema.

Um exemplo clássico do padrão Prototype é quando se tem um documento padrão:


quando for preciso utilizá-lo novamente, ao invés de criá-lo novamente, basta realizar
uma cópia dele com as alterações necessárias.

Factory Method

Factory Method é um padrão que define uma interface para criação de um objeto, mas
permite que as subclasses decidam qual classe instanciar.

Um exemplo de utilização do Factory Method são as aplicações Windows, que possuem


diferentes banco de dados como Oracle e SQL Server. Assim, sempre que for preciso
inserir informações no banco de dados é preciso criar uma SqlConnection ou
uma OracleConnection. Se isso for feito em um if-else teremos muito código e uma
manutenção complicada.

Para resolver este problema basta utilizar o Factory Method, que possui uma estrutura
básica com uma classe abstrata. As subclasses serão derivadas dessa classe e terão a
responsabilidade do processo de instanciação.

Builder

O padrão Builder separa a construção de um objeto complexo da sua representação,


visto que o mesmo processo de construção pode criar diferentes representações. Ele é
útil quando um algoritmo criacional de um objeto complexo é independente da
montagem das partes do objeto.

O exemplo presente possui o IBuilder, Carro, Moto, Produto e Director, onde Carro e
Moto implementam a interface IBuilder, que por sua vez, é usada para criar partes do
objeto Produto, que representa o objeto complexo que está em construção.

A estrutura de dados Linked List em Produto foi utilizada para esta operação de
montagem. Carro e Moto são implementações concretas que implementam a
interface IBuilder, por isso o uso dos
métodos constroiCarcaca(), inserePneus(), adicionaFarois() e getVeiculo(). Os três
primeiros são utilizados para construir o corpo do veículo, inserir rodas e as luzes. Já o
método getVeiculo() retorna o Produto, e por fim, Director é responsável por construir o
veículo com a interface IBuilder.

Você também pode gostar