策略模式
查理想要扩大自己的巧克力工厂,但是他还是一个小孩,很多东西都不知道,那么他就只能让旺卡想出很多种销售模式,来进行提高销量,比如买二送一、满300减120、特价商品打个6折如此如此,那么由查理进行挑选那种策略模式的时候,他需要怎么处理了?旺卡把所有的销售策略都列出来,然后一个个讲给查理听,然后让他来做决定,那么这样和由查理来想策略有什么差别了?那么查理当然是应该是对旺卡说:我想巧克力棒打折、巧克力饮料满减、巧克力糖果满2送1的策略,那么旺卡了解之后,来调用对应的资源就行了,不是吗?有什么比做一个甩手掌柜爽了?
那么换成代码来来讲,查理就是用户类,那么良好的用户体验就是甩手掌柜,我只需要说:我想打折销售,那么需要一个管理者,来分析你的要求,然后调用对应的打折模式就可以了。那么在编程世界中就有这么一个东西,见下图:

是吧,我是用户,我给策略接口发不同的指令,然后接口执行不同的策略,这就是接口的作用,这就是策略模式,接口里面的函数叫策略抽象函数,而每个具体实现,就为策略实现。可是有个确定,比如查理又有20中产品,然后每个都有一种销售策略,那么我作为用户也很麻烦,那么就可以用到之前的工厂模式,将所有的打折套路集中到工厂里面,我只需要传入有个列举,就是类型,就可以获取对应的策略实现类对象。

策略模式解析
1444

被折叠的 条评论
为什么被折叠?



