Sobes.tech
Junior — Middle

Podes falar sobre os diferentes padrões estruturais no design orientado a objetos?

sobes.tech IA

Resposta da IA

Os padrões de design estruturais ajudam a organizar classes e objetos para facilitar o uso e a extensão, fornecendo uma estrutura flexível.

Principais padrões estruturais:

  • Adapter (Adaptador) — Permite que objetos com interfaces incompatíveis trabalhem juntos, envolvendo uma interface em outra.

  • Decorator (Decorador) — Adiciona dinamicamente novas responsabilidades aos objetos, envolvendo-os em outros objetos.

  • Facade (Fachada) — Fornece uma interface simplificada a um subsistema complexo.

  • Proxy (Proxy) — Controla o acesso a outro objeto, por exemplo, para inicialização preguiçosa ou controle de permissões.

  • Composite (Composto) — Permite agrupar objetos em uma estrutura de árvore e trabalhar com eles de forma uniforme.

  • Bridge (Ponte) — Separa a abstração da implementação, permitindo modificá-las independentemente.

Exemplo de uso do Decorator em C#:

interface IComponent {
    void Operation();
}

class ConcreteComponent : IComponent {
    public void Operation() {
        Console.WriteLine("Operação 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("Comportamento adicional");
    }
}

Estes padrões ajudam a criar arquiteturas flexíveis e sustentáveis.