我覺得政策模式與工廠方法模式極其相似!
政策模式:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM1czX3xCZlhXam9VbsUmepNXZy9CXwJWZ3xCdh1mcvZ2Lc1zaHRGcWdUYuVzVa9GczoVdG1mWfVGc5RHLwIzX39GZhh2csATMflHLwEzX4xSZz91ZsAzMfRHLGZkRGZkRfJ3bs92YskmNhVTYykVNQJVMRhXVEF1X0hXZ0xiNx8VZ6l2cssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZwpmL2gTMyMzMwEjNwMTOmljZyYzX0QzM0UTM1EzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.jpg)
工廠方法模式:
如果單從圖來看,看不出有何相似之處。但看看調用方法就知道了:
政策模式:
Context context = new Context();
AbstractStrategy strategy;
//采用哪種政策,由調用方決定
strategy = new ConcreteStrategyA();
context.setStrategy(strategy);
context.algorithm();
工廠方法模式:
IFactory factory;
//采用哪個工廠,由調用方法決定
factory = new ConcreteFactoryA();
IProduct product = factory.Create();