工厂模式
提供一个创建产品的接口(工厂接口),由该接口的实现类去决定如何去创建产品。
根据实际场景选择不同的工厂实现类去创建所需要的产品,不关注该产品的创建细节,只要把该产品创建出来就行。
策略模式
提供一系列的策略,这些策略是可替代的,可以灵活使用策略,执行不同的行为。
在知道所有的策略的情况下,选择当前最适合的策略去执行。
区别
- 用途不一样
工厂是创建型模式,它的作用就是创建对象;
策略是行为型模式,它的作用是让一个对象在许多行为中选择一种行为;
-
关注点不一样
一个关注对象创建
一个关注行为的封装 -
解决不同的问题
工厂模式是创建型的设计模式,它接受指令,创建出符合要求的实例;它主要解决的是资源的统一分发,将对象的创建完全独立出来,让对象的创建和具体的使用客户无关。主要应用在多数据库选择,类库文件加载等。
策略模式是为了解决的是策略的切换与扩展,更简洁的说是定义策略族,分别封装起来,让他们之间可以相互替换,策略模式让策略的变化独立于使用策略的客户。