Я думаю, вы переборщили это.
Это довольно простая проблема с алгоритмом поиска.Ваш домен состоит из студентов (которым нужен совет), советов (которые содержат знания) и какого-либо поставщика, который будет содержать алгоритм поиска, который поможет студенту найти совет.
Используя следующее,Я могу просто изменить алгоритм поиска в любое время в соответствии со своими потребностями.Я могу либо создать совершенно новый поиск, либо изменить тот, который у меня уже есть.Кроме того, я мог бы создать поиск по базе данных вместо списка рекомендаций.Я могу добавить новые критерии, обновив свою модель StudentAdvice и выполнив поиск этого совета в провайдере (это два отдельных изменений, поэтому они не нарушают принцип Open / Closed).1009 * По сути, это можно использовать в качестве шаблона стратегии.Однако я начал с домена, и сам шаблон возник.Выбор шаблонов сначала кодирует вас в углы.
Изучение шаблонов проектирования дает нам множество инструментов для использования.Изучение принципов разработки SOLID позволяет нам понять, когда следует использовать эти инструменты.На следующем сайте есть несколько замечательных ресурсов, связанных с OOD.
http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod