最近学习设计模式,策略模式和工厂模式有一定的相似性,总会把他们混淆,今天把他们整理一下
相似点
在设计模式结构上相似
区别
- 用途不一样
工厂是创建型模式,它的作用就是创建对象;
策略是行为型模式,它的作用是让一个对象在许多行为中选择一种行为;
-
关注点不一样
一个关注对象创建
一个关注行为的封装 -
解决不同的问题
工厂模式是创建型的设计模式,它接受指令,创建出符合要求的实例;它主要解决的是资源的统一分发,将对象的创建完全独立出来,让对象的创建和具体的使用客户无关。主要应用在多数据库选择,类库文件加载等。
策略模式是为了解决的是策略的切换与扩展,更简洁的说是定义策略族,分别封装起来,让他们之间可以相互替换,策略模式让策略的变化独立于使用策略的客户。 -
工厂相当于黑盒子,策略相当于白盒子;
举例说明 -
工厂模式:你是土豪去飞机制造厂买一架私人飞机,只需要工厂给你出一架你想要型号的飞机就OK了飞机怎么造出来的你不管。
-
策略模式:你是个航模爱好者,你要买一架航模,工厂有各种飞机的零件提供给你选择,你选择好后就可以愉快的组装成一架完整的飞机了