Мое приложение будет иметь разные стратегии для моих объектов.Каков наилучший способ реализовать это?В идеале я хотел бы динамически загружать реализации стратегии, скажем, из некоторой реляционной базы данных.Я не уверен, как это сделать, хотя.Какой наилучший подход?
Например, скажем, что мы хотим применить стратегию Strategy123
к объекту MyObj
: мы просто загружаем объект из базы данных, используя его идентификатор 123
, десериализовываем его, получаемкласс Strategy, и используйте его с MyObj
.
. При таком подходе могут возникнуть некоторые проблемы, связанные с техническим обслуживанием: хотя на первый взгляд это звучит проще, в долгосрочной перспективе это может быть проблемой, посколькупример изменения интерфейсов стратегий.
Какие у меня есть другие решения?Мне бы хотелось решение, которое позволило бы мне сохранить классы стратегии вне кодовой базы, чтобы мне не нужно было изменять код и повторно развертывать приложение, если моя стратегия изменится или я добавлю новую стратегию.