Sobes.tech
Junior — Middle

Puoi parlare dei diversi pattern strutturali nel design orientato agli oggetti?

sobes.tech AI

Risposta dell'AI

I pattern strutturali di progettazione aiutano a organizzare classi e oggetti per facilitarne l'uso e l'estensione, fornendo una struttura flessibile.

Principali pattern strutturali:

  • Adapter (Adattatore) — Permette a oggetti con interfacce incompatibili di lavorare insieme, avvolgendo un'interfaccia in un'altra.

  • Decorator (Decoratore) — Aggiunge dinamicamente nuove responsabilità agli oggetti, avvolgendoli in altri oggetti.

  • Facade (Fasciata) — Fornisce un'interfaccia semplificata a un sottosistema complesso.

  • Proxy (Proxy) — Controlla l'accesso a un altro oggetto, ad esempio per l'inizializzazione pigra o il controllo dei permessi.

  • Composite (Composto) — Permette di raggruppare oggetti in una struttura ad albero e di lavorarci in modo uniforme.

  • Bridge (Ponte) — Separa l'astrazione dall'implementazione, consentendo di modificarle indipendentemente.

Esempio di utilizzo del Decorator in C#:

interface IComponent {
    void Operation();
}

class ConcreteComponent : IComponent {
    public void Operation() {
        Console.WriteLine("Operazione principale");
    }
}

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("Comportamento aggiuntivo");
    }
}

Questi pattern aiutano a creare architetture flessibili e manutenibili.