我的应用程序将为我的对象提供不同的策略。实现它的最佳方法是什么?理想情况下,我想从一些关系数据库动态加载策略实现。不过,我不知道该怎么做。什么是最好的方法?
例如,假设我们要将策略Strategy123
应用于对象MyObj
:我们只是使用其ID 123
从数据库加载对象,对其进行反序列化,获取策略class,并与MyObj
一起使用。
这种方法在维护方面可能会遇到一些问题:虽然乍一看听起来比较容易,但从长远来看,这可能会很痛苦,例如,如果策略的界面发生变化,就会感到痛苦。
我还有其他解决方案吗?我想要一个允许我将策略类保留在代码库之外的解决方案,这样如果我的策略发生变化,或者我添加了新策略,我就不需要修改代码并重新部署应用程序。