public class ConexionBD {
private static ConexionBD instancia;
private ConexionBD() {}
public static ConexionBD getInstancia() {
if (instancia == null) {
instancia = new ConexionBD();
}
return instancia;
}
}
public interface Transporte {
void entregar();
}
public class Camion implements Transporte {
public void entregar() {
System.out.println("Entrega en camión.");
}
}
public class TransporteFactory {
public static Transporte crearTransporte(String tipo) {
if ("camion".equals(tipo))
return new Camion();
throw new IllegalArgumentException("Tipo no soportado.");
}
}
// Esta es la interfaz que espera nuestro sistema
public interface DispositivoUSB {
void conectarUSB();
}
// Esta es una clase que representa una tarjeta SD, que no tiene conector USB
public class TarjetaSD {
public void insertar() {
System.out.println("Tarjeta SD insertada.");
}
}
// Este es el adaptador que convierte una tarjeta SD en un dispositivo USB
public class AdaptadorSDaUSB implements DispositivoUSB {
private TarjetaSD tarjeta;
public AdaptadorSDaUSB(TarjetaSD tarjeta) {
this.tarjeta = tarjeta;
}
@Override
public void conectarUSB() {
tarjeta.insertar(); // Adaptamos la interfaz
}
}
// Simulación del uso
public class Main {
public static void main(String[] args) {
TarjetaSD sd = new TarjetaSD();
DispositivoUSB adaptador = new AdaptadorSDaUSB(sd);
adaptador.conectarUSB(); // El sistema cree que es un USB, pero es una SD adaptada
}
}
public interface Componente {
void mostrar();
}
public class Archivo implements Componente {
private String nombre;
public Archivo(String nombre) {
this.nombre = nombre;
}
public void mostrar() {
System.out.println("Archivo: " + nombre);
}
}
public class Carpeta implements Componente {
private String nombre;
private List hijos = new ArrayList<>();
public Carpeta(String nombre) {
this.nombre = nombre;
}
public void agregar(Componente c) {
hijos.add(c);
}
public void mostrar() {
System.out.println("Carpeta: " + nombre);
for (Componente c : hijos) {
c.mostrar();
}
}
}
public class Main {
public static void main(String[] args) {
Carpeta raiz = new Carpeta("Documentos");
Carpeta fotos = new Carpeta("Fotos");
Carpeta trabajo = new Carpeta("Trabajo");
Archivo foto1 = new Archivo("vacaciones.jpg");
Archivo foto2 = new Archivo("cumpleaños.png");
Archivo doc1 = new Archivo("informe.docx");
fotos.agregar(foto1);
fotos.agregar(foto2);
trabajo.agregar(doc1);
raiz.agregar(fotos);
raiz.agregar(trabajo);
raiz.mostrar();
}
}
Documentos
├── Fotos
│ ├── vacaciones.jpg
│ └── cumpleaños.png
└── Trabajo
└── informe.docx