Sobes.tech
Junior — Middle

¿Puedes hablar sobre los diferentes patrones estructurales en el diseño orientado a objetos?

sobes.tech AI

Respuesta de la IA

Los patrones estructurales de diseño ayudan a organizar clases y objetos para facilitar su uso y extensión, proporcionando una estructura flexible.

Patrones estructurales principales:

  • Adapter (Adaptador) — Permite que objetos con interfaces incompatibles trabajen juntos, envolviendo una interfaz en otra.

  • Decorator (Decorador) — Añade dinámicamente nuevas responsabilidades a los objetos, envolviéndolos en otros objetos.

  • Facade (Fachada) — Proporciona una interfaz simplificada a un subsistema complejo.

  • Proxy (Proxy) — Controla el acceso a otro objeto, por ejemplo, para inicialización perezosa o control de permisos.

  • Composite (Compuesto) — Permite agrupar objetos en una estructura de árbol y trabajar con ellos de manera uniforme.

  • Bridge (Puente) — Separa la abstracción de la implementación, permitiendo modificarlas de manera independiente.

Ejemplo de uso del Decorator en C#:

interface IComponent {
    void Operation();
}

class ConcreteComponent : IComponent {
    public void Operation() {
        Console.WriteLine("Operación principal");
    }
}

class Decorator : IComponent {
    protected IComponent component;
    public Decorator(IComponent component) {
        this.component = component;
    }
    public virtual void Operation() {
        component.Operation();
    }
}

class ConcreteDecorator : Decorator {
    public ConcreteDecorator(IComponent component) : base(component) {}
    public override void Operation() {
        base.Operation();
        Console.WriteLine("Comportamiento adicional");
    }
}

Estos patrones ayudan a crear arquitecturas flexibles y mantenibles.