Sobes.tech
Junior — Middle

Можеш ли да разкажеш за различните структурни модели в обектно-ориентираното проектиране?

sobes.tech AI

Отговор от AI

Структурните шаблони за дизайн помагат да се организират класове и обекти за удобство при използване и разширяване, осигурявайки гъвкава структура.

Основни структурни шаблони:

  • Adapter (Адаптер) — Позволява на обекти с несъвместими интерфейси да работят заедно, като обвива един интерфейс в друг.

  • Decorator (Декоратор) — Динамично добавя нови отговорности към обекти, като ги обвива в други обекти.

  • Facade (Фасада) — Предоставя опростен интерфейс към сложна подсистема.

  • Proxy (Прокси) — Контролира достъпа до друг обект, например за лениво инициализиране или контрол на правата.

  • Composite (Компонован) — Позволява групиране на обекти в дървовидна структура и работа с тях по единен начин.

  • Bridge (Мост) — Разделя абстракцията и реализацията, позволявайки да се променят независимо.

Пример за използване на Decorator на C#:

interface IComponent {
    void Operation();
}

class ConcreteComponent : IComponent {
    public void Operation() {
        Console.WriteLine("Основна операция");
    }
}

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("Допълнително поведение");
    }
}

Тези шаблони помагат за създаването на гъвкави и поддържани архитектури.