简单工厂 和 策略模式很像,二者都是采用 处理类聚合抽象类(父类)的方法。二者的区别是(以下两句话很重要):
简单工厂是 采用静态的类方法,通过传入的参数,返回参数所指定的所需要的子类(实际上是返回的是父类引用(父类引用指向子类对象))。
策略模式是 通过处理类的构造方法以参数的形式传入子类对象,然后再在处理类中写一个函数用来封装父类和子类共有的处理方法(strategy.Algo())。
由此可见,策略模式封装的更好。用户只需使用 处理类的对象(传入子类的对象)就可以操作相应子类实现他们的处理。