Можеш ли да разкажеш за различните структурни модели в обектно-ориентираното проектиране?
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("Допълнително поведение");
}
}
Тези шаблони помагат за създаването на гъвкави и поддържани архитектури.