Você está na página 1de 5

INSTITUTO FEDERAL NORTE DE MINAS GERAIS – IFNMG

TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

ARLON TEIXEIRA DA SILVA

PADRÕES DE PROJETO DE SOFTWARE: PROTOTYPE

TEÓFILO OTONI -MG


NOVEMBRO 2023
1. PADRÕES DE PROJETO DE SOFTWARE: PROTOTYPE

Segundo Gustavo Bellini Bigardi, o Prototype é um padrão que faz parte do grupo de
padrões Criacionais e que permite a criação de novos objetos a partir de um modelo original,
ou como o próprio nome indica, um protótipo, que é clonado.
Entre suas utilidades, encontramos:
✓ Evitar que as subclasses que criam objetos funcionem como o padrão Abstract Factory;
✓ Evitar criar um novo objeto utilizando a palavra new, o que diminui o custo de memória;
✓ Em vez de o cliente implementar um código que utiliza o operador new, este utiliza o
método Clone(), presente no protótipo e o método de uma fábrica (Factory
Method ou Abstract Factory) que fica encarregada de clonar o novo objeto.
A seguir serão apresentadas a estrutura com seus módulos do padrão de projeto prototype.

1.1 ESCOPO

O protótipo padrão se concentra na criação de novos objetos duplicando objetos


existentes. Ele permite que um sistema crie objetos sem especificar sua classe concreta,
fornecendo uma interface para criar novos objetos copiando um objeto existente. Isso é útil
quando a criação de um objeto é mais cara em termos de desempenho ou complexidade do que
a cópia de um objeto existente

1.2 FINALIDADE

A propósito do padrão Prototype é criar novos objetos com eficiência, evitando a


sobrecarga de criar objetos do zero. Ele promove a reutilização de código e ajuda para evitar a
dependência de classes específicas.

1.3 INTENÇÃO

Permitir a criação de novos objetos a partir de um modelo original, ou como o próprio


nome indica, um protótipo, que é clonado.

1.4 MOTIVAÇÃO

É um padrão de projeto que permite a criação de objetos a partir de um modelo original,


ou seja, foi criado com o objetivo de especificar os tipos de objetos a serem criados usando una
instância-protótipo e criar novos objetos pela cópia desse protótipo. Efetivamente, cada objeto
é um factory especializado em construir objetos iguais a si mesmo. Este padrão pode ser
utilizado em sistemas que precisam ser independentes da forma como os seus componentes são
criados, compostos e representados (wordpress, 2016).

1.5 APLICABILIDADE

O padrão Prototype pode ser útil em sistemas com as seguintes características:


✓ Sistemas que utilizam classes definidas em tempo de execução;
✓ Sistemas que utilizam o padrão Abstract Factory para criação de objetos. Neste caso, a
hierarquia de classes pode se tornar muito complexa e o padrão Prototype pode ser uma
alternativa mais simples, por realizar a mesma tarefa com um número reduzido de
classes;
✓ Sistemas que possuem componentes cujo estado inicial possui poucas variações e onde
é conveniente disponibilizar um conjunto pré-estabelecido de protótipos que dão origem
aos objetos que compõem o sistema (wordpress, 2016).

1.6 ESTRUTURA

Fonte: wordpress.com

1.7 ELEMENTOS PARTICIPANTES

Prototype — uma classe que declara uma interface para objetos capazes de clonar a si mesmo.
Prototype concreto — implementação de um prototype;
Cliente — cria um novo objeto através de um prototype que é capaz de clonar a si mesmo.
1.8 COLABORAÇÕES

O cliente cria um novo objeto solicitando que o protótipo seja clonado. O cliente não
precisa conhecer uma classe específica do objeto, pois ele trabalha com a interface do Prototype.

1.9 CONSEQUÊNCIAS

O padrão isola as classes concretas dos clientes, facilita a troca de famílias de produtos
(basta trocar uma linha do código pois a criação da fábrica concreta aparece em um único ponto
do programa), promove a consistência de produtos (não há o perigo de misturar objetos de
famílias diferentes), dificulta a criação de novos produtos ligeiramente diferentes (pois temos
que modificar a fábrica abstrata e todas as fábricas concretas) (Ricardo Argenton Ramos, 2010).

1.10 PADRÕES RELACIONADOS

Abstract Factory: Pode ser combinado com o Prototype para criar famílias de objetos
relacionados.
Memento: Pode ser usado para capturar e restaurar o estado de um objeto para suportar
operações de clonagem.
Singleton: Às vezes, um Singleton é utilizado como protótipo.

1.11EXEMPLO DE APLICAÇÃO

Imagine que você está desenvolvendo um sistema de gerenciamento de mídia, e você


tem uma aula Videoque representa um vídeo. A criação de instâncias dessa classe é cara, pois
envolve a leitura e processamento de grandes arquivos de vídeo. Para evitar criar instâncias
repetidas de vídeos, você pode usar o Protótipo padrão.
2. REFERÊNCIAS BIBLIOGRÁFICAS

GUSTAVO BELLINI BIGARDI. Arquitetura e desenvolvimento de software: Prototype.


Fórum iMasters, São Paulo, 2018.

RICARDO ARGENTON RAMOS. Padrões de Projeto de Software Orientado a Objetos.


Univasf, Bahia, 2010.
WORDPRESS. Metodologia e orientação de projetos – padrões de projetos. Wordpress, 2016.

Você também pode gostar