简单工厂模式与 策略与简单工厂结合 比较
面向对象:
利用抽象、继承、多态和封装等,对事物进行一定的归纳,抽象出统一的父类(对同类型但不同实现的方法或操作进行提取),利用子类继承父类来实现具体方法。
面向对象是设计模型的基础。
简单工厂模式:
创建工厂工具类,这个类根据情况的不同返回不同的子类,可以通过调用父类的抽象方法来动态调用子类的具体实现方法。
策略模型:
创建策略类,这个类仅仅是拥有两类方法,一类方法是统一的获得子类对象,另一类方法是调用父类的抽象方法。
简单工厂模式 与 策略模型 的区别:
简单工厂模式:类A调用工厂类的工厂方法,工厂返回的是一个经过上转型的子类对象,在类A中返回的对象再进行具体的方法调用。在这个过程中类A接触了工厂类与父类两个类。
策略模型:首先,类A根据情况的不同传递给策略类不同的子类对象,然后,类A调用策略类中的方法返回子类对象处理结果。在这个过程中类A接触了策略类与所有的子类。
策略与简单工厂结合:把在类A中的判断情况移入到策略类中的获取子类对象的方法中,模仿简单工厂类中的工厂方法,但是不用返回对象实例。这样的好处是类A不用知道所有的实现过程(包括判断过程),类A只需要接触策略类实例对象就可以完成整个操作过程。