策略增加了应用程序中的对象数量

时间:2011-10-20 15:47:05

标签: design-patterns

有人可以详细说明与策略模式相关的内容:

“策略增加了应用程序中对象的数量。有时你可以通过将策略实现为上下文可以共享的无状态对象来减少这种开销。任何剩余状态都由上下文维护,它将每个请求传递给策略 宾语。共享策略不应该跨调用维护状态。“

为什么策略会增加应用程序中的对象数量?

感谢。

1 个答案:

答案 0 :(得分:0)

只有在您维持策略状态时才会发生这种情况。 让我解释一下: 假设您有一个StandardCalculator类。现在假设您有一个用于后续操作的API(别名策略)

  1. 添加两个数字
  2. 获取两个数字平方和的平方根i.r square_root(a_square + b + square)
  3. 两个数字的区别
  4. 现在有两种方法可以实现解决方案: 1)有一个接受两个数字的构造函数 2)客户端创建实例,然后调用getSum(),get_square_root_sum(),get_difference()等。

    在这种情况下,只要客户端需要使用这些API,就需要创建一个新的StandardCalculator实例

    其他解决方案是:

    1. 创建一个singleton课程
      1. 拥有API getSum(int a,int b),get_square_root_sum(int a,int b),get_difference(int a,int b)等。
    2. 所以这里你的API要求参数来执行策略实现。

      在这种情况下,不同的客户可以使用相同的StandardCalculator实例来调用不同的策略。