工厂模式与策略模式区分心得

刚刚看完燕洋天老师的博客,狠狠地汲取了一些养分,在博文中对设计模式有了框架性的了解。框架对于处理不同Product的Price逻辑,先是用策略模式将价格计算方法抽象为接口,再通过不同的类实现接口,调用时只需要实例化不同的实现类即可由不同的逻辑计算。同时,洋老师在博文中又封装了一层,将不同的产品类型封装成了枚举,并编写SERVICE类Get方法,根据ProductType参数Switch返回出不同的实现接口的实例对象,这一步即为工厂模式。

综上: 我认为,工厂模式和策略模式的最根本的区别就是——区分行为/对象的动作是由系统完成还是用户完成的。系统完成则为工厂模式,用户完成即为策略模式。 对于上面的例子来说:1.策略模式,开发工程师在实例化Product类的时候讲属性“计算”初始化为不同的实现接口的类,此行为为用户(工程师)操作的,则此模式为策略模式。2.工厂模式,工程师在实例化Product类的时候,调用构造函数 ,将产品类别传入,函数根据产品类别自动初始化其对应的接口实现类,此行为为系统操作,此为工厂模式。

posted @ 2016-03-09 15:18  夏之炎冬之寒  阅读(96)  评论(0)    收藏  举报