使用策略设计模式与脚本编写用户特定的逻辑?

时间:2014-09-25 18:28:50

标签: c# .net design-patterns strategy-pattern

我试图解决的一般问题是特定方法的代码变得过大,因为大部分逻辑在特定用户之间开始大不相同。例如,为了确定客户X的最佳运输方法,与客户A,B,C确定相同的东西时,要考虑许多不同的因素和逻辑......

这似乎是使用策略模式进行重构的一个很好的候选者,但我想知道是否,因为有很多很多客户端,每个客户端可能需要对其逻辑进行特定调整,我最好使用脚本语言封装这个逻辑,而不是需要为需要定制逻辑的客户端创建新的策略实现?

1 个答案:

答案 0 :(得分:1)

我看到你正在使用.Net。

根据我的经验,两者都是可能的,使用脚本的单个问题是你必须使用反射,并且在代码出现问题时很难调试。

Boo非常容易使用语言,最好使用Compiler API来确保至少编译用户的代码!

至于我,如果你想验证/测试用户代码,并且你想要面对多个交互(可以改变),我会使用的不是策略,而是像:

这将避免脚本编写错误且难以调试的情况。

此外,它还使您的软件可组合且可测试,如果用户引入的数据无效,您可以添加以后的日志记录或其他关键组件。