Как динамически загружать стратегии (Strategy Pattern)? - PullRequest
1 голос
/ 19 февраля 2011

Мое приложение будет иметь разные стратегии для моих объектов.Каков наилучший способ реализовать это?В идеале я хотел бы динамически загружать реализации стратегии, скажем, из некоторой реляционной базы данных.Я не уверен, как это сделать, хотя.Какой наилучший подход?

Например, скажем, что мы хотим применить стратегию Strategy123 к объекту MyObj: мы просто загружаем объект из базы данных, используя его идентификатор 123, десериализовываем его, получаемкласс Strategy, и используйте его с MyObj.

. При таком подходе могут возникнуть некоторые проблемы, связанные с техническим обслуживанием: хотя на первый взгляд это звучит проще, в долгосрочной перспективе это может быть проблемой, посколькупример изменения интерфейсов стратегий.

Какие у меня есть другие решения?Мне бы хотелось решение, которое позволило бы мне сохранить классы стратегии вне кодовой базы, чтобы мне не нужно было изменять код и повторно развертывать приложение, если моя стратегия изменится или я добавлю новую стратегию.

1 Ответ

1 голос
/ 19 февраля 2011

Вы можете реализовать стратегию, используя механизм правил, такой как Drools или некоторый язык сценариев, такой как Groovy , и сохранять их в базе данных. Затем вы можете загрузить эти правила из базы данных во время выполнения и применить их к вашему объекту.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...