Strategy 策略模式,也称为政策模式(Policy),定义一系列算法,将每一个算法封装起来,并让它们可以相互替换
策略模式让算法独立于使用它的客户而变化,使他们之间能互相快速切换
先定义一个抽象策略,并且新增 2 个具体实现:
1 | abstract class Strategy |
1 | class LadyStrategy extends Strategy |
1 | class GentlemanStrategy extends Strategy |
下面是需要传入策略的宣传语:
1 | class Slogan |
最后是实际使用,根据不同策略输出合适宣传语:
1 | $ladySlogan = new Slogan(new LadyStrategy); |