Я использовал стратегический подход в довольно сложном движке в приложении, которое является хорошим примером. По сути, роль движка заключалась в том, чтобы сначала найти список людей, у которых был виджет, а во-вторых, выяснить, какие 10 лучших людей с виджетом основаны на неизвестном количестве параметров (например, на расстоянии от предыдущего бизнеса вместе). , сумма на складе, варианты доставки и т. д. и т. д. ...)
По сути, мы разбили проблему на две стратегии, первой из которых было извлечение данных, так как мы знали, что у нас есть несколько источников наших виджетов, и нам нужно было иметь возможность получать данные и преобразовывать их в общую структуру.
Затем мы также поняли, что у нас было несколько алгоритмов, некоторые из которых основывались на взвешивании параметров, другие были очень странными и приличными, и я не мог отдать им должное, не вытащив изображения и графики, и вы получите картину, у нас было много алгоритмов отбора лучших людей.
Наш сервис был сам по себе тем, что, по сути, определял входы, выходы и делал некоторую нормализацию данных, он также использовал шаблон провайдера для подключения специфических для приложения провайдеров данных и алгоритмических провайдеров, которые использовали стратегию. Это была довольно эффективная система.
У нас были некоторые споры, если мы использовали стратегию или шаблон, который мы никогда не решали.