简单工厂模式和策略模式的区别

  简单工厂模式和策略模式在结构模式上两者很相似,所以我们经常会混淆它们。这里就先说一说我对它们的理解。

  简单工厂模式::客户端传一个条件进工厂类,工厂类根据条件生成相应的对象并返回给客户端。

  策略模式:客户端创建一个Context对象a,创建策略对象并当做参数传递给a,然后客户端使用a方法通过某种方法得到想要的值返回给客户端。

  下面说一说它们的差异性:

  一 它们的用途不一样。简单工厂模式是创建型模式,它的作用是创建对象。策略模式是行为型模式,作用是在许多行为中选择一种行为,关注的是行为的多样性。

  二  解决的问题不同。简单工厂模式是解决资源的统一分发,将对象的创立同客户端分离开来。策略模式是为了解决策略的切换和扩展。

  三 工厂相当于黑盒子,策略相当于白盒子。

如果在适合用策略模式的情况下用简单工厂模式,如果新增加策略就要修改工厂类,而这个可能会导致其他错误和比较繁琐,而如果使用了策略模式,只要将新增加的策略当做参数传递到Context类中即可。

    原文作者:xjh1997
    原文地址: https://blog.csdn.net/xjh1997/article/details/81078716
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞