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.