模式与工厂模式的区分"/>
策略模式与工厂模式的区分
策略模式与工厂模式非常的相像,下面我们来通过一个简单的例子来进行区分。
比如:某天你在某个店家付了10块钱说想要一杯可乐,没过多久店家就给你端来了一杯可乐,但你并不知道这杯可乐是来自肯德基的还是来自麦当劳的,反正你只出了10块钱告诉老板你想要可乐然后可乐就来了,这就是工厂模式。
再比如:你需要喝一杯可乐,你出了10块钱给老板,老板问你是想和肯德基的还是麦当劳的,你告诉老板麦当劳的,于是老板给你上了一杯可乐,也就是你指定了老板以何种方式去获得可乐,这就是策略模式。
一般情况下,策略模式是为了解决策略的切换与扩展,更简洁的说是定义策略族,分别封装起来,让他们之间可以相互替换,策略模式让策略的变化独立与使用策略的客户。
工厂模式主要解决的是资源的统一分发,将对象的创建独立出来,让对象的创建和具体的使用与客户无关。
在了解了以上几点后,很明显,策略模式是开放的,作为一个主体,你的活动范围是全程的,大多数事情要你自己亲力亲为。而工厂模式是封闭的,作为主体的你活动范围是有限的,很多事情都帮你做好了,你直接"点"就好了。
再举个浅显的例子:
以前买电脑,你需要自己买显示屏,CPU,显卡...然后自己组装成电脑,这就叫做策略模式。
而现在你买电脑,只需要去电脑城跟老板说你要什么牌子什么型号的电脑老板就会给你拿出一台现成的电脑,这就叫工厂模式。
更多推荐
策略模式与工厂模式的区分
发布评论