前两天有一个新入职的同事在问我工厂模式和策略模式有啥不一样呢,我当时解释了一番貌似对方听得云里雾里的,今天在这里重新梳理下。
工厂模式:假设我们要买一个本子,价格50块以内的。我们到商店告诉售货员我们的需求,她会给你不同的几个规格选择,你选择一个购买就行了。这个过程其实就是一个典型的工厂模式,售货员就是一个工厂,针对你的需求给你对应的商品,你不需要关注商品是如何制造的。
策略模式:假设我们还是要买一个本子,这个时候商家推出了一个促销活动,所有商品打7折,满200在减50的活动。那针对商家打折的动作其实就是一个典型的策略模式,针对不同的活动给出不同的策略,策略之间可以自由组合。
工厂模式和策略模式最大的区别其实就是,前者直接给出结果你不需要关注过程,后者直接告诉你自己有多少东西如何做你自己决定。