Sobes.tech
Junior — Middle

Czy możesz opowiedzieć o różnych wzorcach strukturalnych w projektowaniu obiektowym?

sobes.tech AI

Odpowiedź od AI

Wzorce projektowe strukturalne pomagają organizować klasy i obiekty dla wygody użytkowania i rozbudowy, zapewniając elastyczną strukturę.

Główne wzorce strukturalne:

  • Adapter (Adapter) — umożliwia współpracę obiektów z niekompatybilnymi interfejsami, opakowując jeden interfejs w inny.

  • Decorator (Dekorator) — dynamicznie dodaje obiektom nowe obowiązki, opakowując je w inne obiekty.

  • Facade (Fasada) — zapewnia uproszczony interfejs do złożonego podsystemu.

  • Proxy (Proxy) — kontroluje dostęp do innego obiektu, na przykład dla leniwej inicjalizacji lub kontroli uprawnień.

  • Composite (Kompozyt) — pozwala grupować obiekty w strukturę drzewiastą i pracować z nimi jednolicie.

  • Bridge (Most) — oddziela abstrakcję od implementacji, umożliwiając ich niezależne zmiany.

Przykład użycia Decorator w C#:

interface IComponent {
    void Operation();
}

class ConcreteComponent : IComponent {
    public void Operation() {
        Console.WriteLine("Operacja główna");
    }
}

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("Dodatkowe zachowanie");
    }
}

Te wzorce pomagają tworzyć elastyczne i łatwe do utrzymania architektury.