策略模式+简单工厂
它定义了算法家族,分别封装起来,让它们之间可以相互替换,
此模式让算法的变化,不会影响到使用算法的客户。
策略模式和简单工厂模式很像。
不知道自己能不能分辨清晰。
以计算器为例。
简单工厂模式和策略模式中:
都需要设计抽象运算类,具体的加减乘除子类。
区别在客户端中
简单工厂模式:
客户端需要接受一个具体的子类,同时还需要知道子类的方法,自己通过子类的方法来得到结果。
策略模式:
客户端需要接受的是一个包含子类的context类和一个context的方法,通过传入参数,context中会生产一个具体的运算子类,然后再context的方法中调用子类的运算方法。这样客户不知道具体的运算方法。
或者说策略模式,是在客户端和模式之间加了一个中间层。