// PATRÓN BUILDER - CONFIGURACIÓN DE LAPTOP

import java.util.Scanner;

// CLASE PRODUCTO: LAPTOP

class Laptop {
    private String procesador;
    private int ramGB;
    private int ssdGB;
    private boolean tecladoRGB;
    private String sistemaOperativo;
    
    private Laptop(Builder builder) {
        this.procesador = builder.procesador;
        this.ramGB = builder.ramGB;
        this.ssdGB = builder.ssdGB;
        this.tecladoRGB = builder.tecladoRGB;
        this.sistemaOperativo = builder.sistemaOperativo;
    }
    
    public void mostrarConfiguracion() {
        System.out.println("\n===== LAPTOP CONFIGURADA =====");
        System.out.println("Procesador: " + procesador);
        System.out.println("RAM: " + ramGB + "GB");
        System.out.println("SSD: " + ssdGB + "GB");
        System.out.println("Teclado RGB: " + (tecladoRGB ? "Sí" : "No"));
        System.out.println("Sistema Operativo: " + sistemaOperativo);
    }
    
    // BUILDER
    
    public static class Builder {
        private String procesador = "Intel i5 (Default)";
        private int ramGB = 8;
        private int ssdGB = 512;
        private boolean tecladoRGB = false;
        private String sistemaOperativo = "Windows 11";
        
        public Builder setProcesador(String procesador) {
            this.procesador = procesador;
            return this;
        }
        
        public Builder setRamGB(int ramGB) {
            this.ramGB = ramGB;
            return this;
        }
        
        public Builder setSsdGB(int ssdGB) {
            this.ssdGB = ssdGB;
            return this;
        }
        
        public Builder setTecladoRGB(boolean tecladoRGB) {
            this.tecladoRGB = tecladoRGB;
            return this;
        }
        
        public Builder setSistemaOperativo(String sistemaOperativo) {
            this.sistemaOperativo = sistemaOperativo;
            return this;
        }
        
        public Laptop build() {
            return new Laptop(this);
        }
    }
}

// CLASE PRINCIPAL

public class MainLaptop {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        System.out.println("========================================");
        System.out.println(" CONFIGURADOR DE LAPTOP");
        System.out.println(" PATRÓN BUILDER");
        System.out.println("========================================\n");
        
        Laptop.Builder builder = new Laptop.Builder();
        
        // PROCESADOR
        System.out.println("PROCESADOR:");
        System.out.println("1. Intel i5");
        System.out.println("2. Intel i7");
        System.out.println("3. Ryzen 7");
        System.out.print("Seleccione: ");
        int opProc = sc.nextInt();
        
        switch (opProc) {
            case 1: builder.setProcesador("Intel i5"); break;
            case 2: builder.setProcesador("Intel i7"); break;
            case 3: builder.setProcesador("Ryzen 7"); break;
            default: System.out.println("Opción no válida, usando Intel i5");
        }
        
        // RAM
        System.out.println("\nRAM:");
        System.out.println("1. 8GB");
        System.out.println("2. 16GB");
        System.out.println("3. 32GB");
        System.out.print("Seleccione: ");
        int opRam = sc.nextInt();
        
        switch (opRam) {
            case 1: builder.setRamGB(8); break;
            case 2: builder.setRamGB(16); break;
            case 3: builder.setRamGB(32); break;
            default: System.out.println("Opción no válida, usando 8GB");
        }
        
        // SSD
        System.out.println("\nALMACENAMIENTO SSD:");
        System.out.println("1. 256GB");
        System.out.println("2. 512GB");
        System.out.println("3. 1TB");
        System.out.print("Seleccione: ");
        int opSsd = sc.nextInt();
        
        switch (opSsd) {
            case 1: builder.setSsdGB(256); break;
            case 2: builder.setSsdGB(512); break;
            case 3: builder.setSsdGB(1024); break;
            default: System.out.println("Opción no válida, usando 512GB");
        }
        
        // TECLADO RGB
        System.out.print("\n¿Desea teclado RGB? (si/no): ");
        sc.nextLine(); // limpiar buffer
        String rgb = sc.nextLine();
        builder.setTecladoRGB(rgb.equalsIgnoreCase("si"));
        
        // SISTEMA OPERATIVO
        System.out.println("\nSISTEMA OPERATIVO:");
        System.out.println("1. Windows 11");
        System.out.println("2. Windows 10");
        System.out.println("3. Linux Ubuntu");
        System.out.print("Seleccione: ");
        int opSo = sc.nextInt();
        
        switch (opSo) {
            case 1: builder.setSistemaOperativo("Windows 11"); break;
            case 2: builder.setSistemaOperativo("Windows 10"); break;
            case 3: builder.setSistemaOperativo("Linux Ubuntu"); break;
            default: builder.setSistemaOperativo("Windows 11");
        }
        
        // CONSTRUIR Y MOSTRAR
        Laptop laptop = builder.build();
        laptop.mostrarConfiguracion();
        
        sc.close();
    }
}

Embed on website

To embed this program on your website, copy the following code and paste it into your website's HTML: