Está en la página 1de 9

CÓDIGO PATRÓN BUILDER

CLASE DOCUMENTACIÓN
import java.util.*;
public abstract class Documentacion {
protected List<String> contenido = new ArrayList<String>();

public abstract void agregaDocumento(String documento);


public abstract void imprime();
}

CLASE DOCUMENTACIÓN HTML


public class DocumentacionHtml extends Documentacion {
@Override
public void agregaDocumento(String documento){
if (documento.startsWith("<HTML>")) {
contenido.add(documento);
}
}
@Override
public void imprime(){
System.out.println("Documentacion en formato HTML");
for(String s: contenido){
System.out.println(s);
}
}
}
CLASE DOCUMENTACIÓN PDF
public class DocumentacionPdf extends Documentacion{
@Override
public void agregaDocumento(String documento){
if (documento.startsWith("<PDF>")) {
contenido.add(documento);
}
}

@Override
public void imprime(){
System.out.println("Documentacion en formato PDF");
for(String s: contenido){
System.out.println(s);
}
}
}
CLASE CONSTRUCTOR DOCUMENTACIÓN VEHÍCULO
public abstract class ConstructorDocumentacionVehiculo {

protected Documentacion documentacion;


public abstract void construyeSolicitudPedido(String nombreCliente);

public abstract void construyeSolicitudMatriculacion(String nombreSolicitante);

public Documentacion resultado(){


return documentacion;
}
}

CLASE CONSTRUCTOR DOCUMENTACIÓN VEHÍCULO HTML


public class ConstructorDocumentacionVehiculoHtml extends
ConstructorDocumentacionVehiculo {

public ConstructorDocumentacionVehiculoHtml(){
documentacion = new DocumentacionHtml();
}
@Override
public void construyeSolicitudPedido(String nombreCliente){
String documento;
documento = "<HTML>Solicitud de pedido Cliente: " +
nombreCliente + "</HTML>";
documentacion.agregaDocumento(documento);
}

@Override
public void construyeSolicitudMatriculacion(String nombreSolicitante){
String documento;
documento = "<HTML>Solicitud de matriculación Solicitante: " +
nombreSolicitante + "</HTML>";
documentacion.agregaDocumento(documento);
}
}
CLASE CONSTRUCTOR DOCUMENTACIÓN VEHÍCULO PDF
public class ConstructorDocumentacionVehiculoPdf extends
ConstructorDocumentacionVehiculo {

public ConstructorDocumentacionVehiculoPdf(){
documentacion = new DocumentacionPdf();
}

@Override
public void construyeSolicitudPedido(String nombreCliente){
String documento;
documento = "<PDF>Solicitud de pedido Cliente: " +
nombreCliente + "</PDF>";
documentacion.agregaDocumento(documento);
}

@Override
public void construyeSolicitudMatriculacion(String nombreSolicitante){
String documento;
documento = "<PDF>Solicitud de matriculación Solicitante: " +
nombreSolicitante + "</PDF>";
documentacion.agregaDocumento(documento);
}
}
CLASE VENDEDOR
public class Vendedor {
protected ConstructorDocumentacionVehiculo constructor;

//constructor
public Vendedor(ConstructorDocumentacionVehiculo constructor){
this.constructor = constructor;
}

public Documentacion construye(String nombreCliente, String nombreSolicitante){


constructor.construyeSolicitudPedido(nombreCliente);
constructor.construyeSolicitudMatriculacion(nombreSolicitante);
Documentacion documentacion = constructor.resultado();
return documentacion;
}
}
CLASE CLIENTE VEHÍCULO
import java.util.*;

public class ClienteVehiculo {

public static void main(String[] args) {


Scanner reader = new Scanner (System.in);
ConstructorDocumentacionVehiculo constructor;

System.out.println("Desea generar " +


"documentacion HTML (1) o PDF(2):");
String seleccion = reader.next();
if (seleccion.equals("1")) {
constructor = new ConstructorDocumentacionVehiculoHtml();
}else{
constructor = new ConstructorDocumentacionVehiculoPdf();
}

Vendedor vendedor = new Vendedor(constructor);


Documentacion documentacion = vendedor.construye("Maluma","Ozuna");
documentacion.imprime();
}

EJECUCIÓN

También podría gustarte