Sobes.tech
Back to questions
Junior — Middle
65

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

Answer from AI

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

Эти паттерны помогают создавать гибкие и поддерживаемые архитектуры.