ESCUELA ACADEMICA PROFESIONAL DE INGENIERIA
DE SISTEMAS E INFORMATICA
CURSO:
Patrones de Diseño de Software
TEMA:
Diseño del Patrón Prototype
CICLO:
V
ALUMNO:
Paredes De Paz Luis 0201614042
DOCENTE:
Ms. ING. YIM ISAIAS APESTEGUI FLORENTINO
AÑO:
2020
Patrón Prototype
Codificación:
//////////////////////////////////////////////////////
public class CertificadoCesion extends Documento {
@Override
public void visualiza(){
[Link]( "Muestra el Certificado de Cesión: " + contenido);
@Override
public void imprime(){
[Link]( "Imprime el Certificado de Cesión: " + contenido);
//////////////////////////////////////////////////////
import [Link];
public abstract class Documentacion {
protected List <Documento> documentos;
public List <Documento> getDocumentos(){
return documentos;
//////////////////////////////////////////////////////
import [Link].*;
public class DocumentacionCliente extends Documentacion {
public DocumentacionCliente(String informacion){
documentos = new ArrayList<Documento>();
DocumentacionEnBlanco documentacionEnBlanco = [Link]();
List<Documento> documentosEnBlanco = [Link]();
for (Documento doc: documentosEnBlanco) {
Documento copiaDocumento = [Link]();
[Link](informacion);
[Link](copiaDocumento);
public void visualiza(){
for (Documento doc: documentos) {
[Link]();
public void imprime(){
for (Documento doc: documentos) {
[Link]();
//////////////////////////////////////////////////////
import [Link];
public class DocumentacionEnBlanco extends Documentacion{
private static DocumentacionEnBlanco una_instance = null;
private DocumentacionEnBlanco(){
documentos = new ArrayList <Documento>();
public static DocumentacionEnBlanco Instancia(){
if (una_instance == null) {
una_instance = new DocumentacionEnBlanco();
return una_instance;
public void incluye(Documento doc){[Link](doc);}
public void excluye(Documento doc){[Link](doc);}
}
//////////////////////////////////////////////////////
public abstract class Documento implements Cloneable {
protected String contenido = new String();
public Documento duplica(){
Documento resultado;
try {
resultado = (Documento)[Link]();
catch(CloneNotSupportedException exception){
return null;
return resultado;
public void rellenar(String informacion){
contenido = informacion;
public abstract void imprime();
public abstract void visualiza();
//////////////////////////////////////////////////////
public class OrdendePedido extends Documento {
@Override
public void visualiza(){
[Link]("Muestra la Orden de Pedido: "+contenido);
@Override
public void imprime(){
[Link]("Imprime la Orden de Pedido: "+contenido);
//////////////////////////////////////////////////////
public class SolicitudMatriculacion extends Documento {
@Override
public void visualiza(){
[Link]( "Muestra la Solicitud de Matriculación: "+contenido);
@Override
public void imprime(){
[Link]( "Imprime la Solicitud de Matriculación: "+contenido);
//////////////////////////////////////////////////////
public class Usuario {
public static void main(String[] args) {
DocumentacionEnBlanco documentacionEnBlanco = [Link]();
[Link](new OrdendePedido());
[Link](new CertificadoCesion());
[Link](new SolicitudMatriculacion());
DocumentacionCliente documentacionCliente1 = new DocumentacionCliente("Luis");
DocumentacionCliente documentacionCliente2 = new DocumentacionCliente("Enrique");
[Link]("//////////////////////////////////////////////");
[Link]();
[Link]("//////////////////////////////////////////////");
[Link]();
[Link]("//////////////////////////////////////////////");
[Link]();
[Link]("//////////////////////////////////////////////");
[Link]();
[Link]("//////////////////////////////////////////////");
}
}
//////////////////////////////////////////////////////
PANTALLASO