Шаблон проектирования представляет повторно используемую форму решения в разработке программного обеспечения. По сути, это идея или передовая практика для решения общих проблем проектирования ОО, и определенно это не реализация. Существует множество типов шаблонов проектирования, таких как SingleTon, Creational, Factory, Observer, Strategy и т. д.

Сегодня я хотел бы написать пример того, как использовать шаблон проектирования стратегии в реальном проекте. Что такое Strategy Pattern?
Ладно, начнем, чтобы не терять времени.

Я полагаю, мы ищем что-то купить на Amazon. Чтобы найти вещь, мы должны сначала выбрать категорию, верно? Хорошо, вот способ установки категории.

Затем при вызове этой функции мы устанавливаем категорию «Книга» или «Музыка», как показано ниже: (Предположим, здесь только 2 типа категории!)

При беглом взгляде кажется, что здесь нет никаких проблем. Но давайте подробно рассмотрим этот код.
Опять же, я полагаю, если к нам присоединится новый участник, и у него нет времени полностью разбираться в исходном коде. Итак, я предполагаю, что может быть способ написания кода от новичка вроде него…

Ага! Он по-прежнему хорошо выглядит! Просто нет результата, но нет ошибки компиляции. Верно?
Однако обычный инженер никогда не реализует подобное, поэтому вам нужно рассмотреть способ реализации, предотвращающий передачу неверных значений в метод. Конечно! Пришло время подумать о паттерне Стратегия.

По сути, я изменю реализацию, чтобы заставить разработчиков передавать правильное значение в метод. Если нет, то сразу появляется ошибка компиляции.
Вот код:

Как видите, если они зададут String или другой тип Category, компиляция не удастся. И это безопасно!

setCategory("blabla") -› Ошибка компиляции здесь

Хорошо, это всего лишь простой пример, и я надеюсь, что он поможет вам понять шаблон проектирования стратегии в Kotlin.

Удачного кодирования!