Sobes.tech
Junior — Middle

Мо метавонед ном ва шарҳи намунаҳои асосии рафторро, ки дар тарҳрезии системаҳои нармафзор истифода мешаванд, номбар кунед?

sobes.tech AI

Ҷавоб аз AI

Основные поведенческие паттерны проектирования помогают организовать взаимодействие объектов и распределение обязанностей между ними. Вот несколько ключевых:

  • Стратегия (Strategy) — определяет семейство алгоритмов, инкапсулирует каждый из них и делает их взаимозаменяемыми. Позволяет менять алгоритмы независимо от клиентов.

  • Наблюдатель (Observer) — устанавливает зависимость один-ко-многим между объектами, так что при изменении состояния одного объекта все зависящие уведомляются и обновляются автоматически.

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

  • Итератор (Iterator) — предоставляет способ последовательного доступа к элементам коллекции без раскрытия её внутреннего представления.

  • Состояние (State) — позволяет объекту изменять поведение при изменении внутреннего состояния, словно меняя класс.

  • Посредник (Mediator) — уменьшает связанность множества объектов, централизуя взаимодействие между ними.

Пример паттерна Стратегия на C#:

interface IStrategy {
    void Execute();
}

class ConcreteStrategyA : IStrategy {
    public void Execute() { Console.WriteLine("Стратегия A"); }
}

class Context {
    private IStrategy strategy;
    public Context(IStrategy strategy) { this.strategy = strategy; }
    public void SetStrategy(IStrategy strategy) { this.strategy = strategy; }
    public void ExecuteStrategy() { strategy.Execute(); }
}

// Использование
var context = new Context(new ConcreteStrategyA());
context.ExecuteStrategy();
context.SetStrategy(new ConcreteStrategyB());
context.ExecuteStrategy();

Эти паттерны помогают писать гибкий, расширяемый и поддерживаемый код.