Context类有个属性是Strategy,通过构造函数,需要哪个具体的策略就传入哪个具体的实现类。
优点:封装了变化,具体的实现策略的类可以单独修改测试。
使用场景:不同时间应用不同的业务规则。
通过简单工厂和策略模式的结合,可以避免客户端调用的判断,将Context改造成工厂类。
工厂模式和策略模式的区别在于实例化一个对象的位置不同,对工厂模式而言,实例化对象是放在服务端的,即放在了工厂类里面;
而策略模式实例化对象的操作在客户端,服务端的只负责传递该对象,并在服务端的环境里执行特定的操作。
策略模式
策略模式结构