我对java中的策略模式有疑问。在第一个图中,我们可以看到策略模式的定义。上下文由一个Strategy接口组成,上下文可以是任何需要改变行为的东西 - 一个可能提供排序功能的类。
策略只是作为一个接口实现,这样我们就可以在不影响Context的情况下进出ConcreteStrategys。
现在让我们看看第二张图。假设我们使用策略模式。类ConcreteStrategyA和ConcreteStrategyB需要调用客户端来执行它们实现的算法。
您需要接口客户端界面的任何理由?
答案 0 :(得分:1)
您可能希望对某个接口进行操作,以允许在单元测试期间模拟客户端,或者从具体策略中删除对特定客户端实现的依赖。