简单工厂:依据输入,简单工厂类控制产品线的具体产品。
解释:将需求的变更分割为不同的子类,使得符合OCP。
缺点:一个工厂生产不同的东西,工厂本身包含了判断逻辑,仍旧在一定程度上违反OCP。
工厂方法模式:简单工厂的工厂类---->工厂接口+具体工厂的实现
解释:将简单工厂方法的判断丢到不同的工厂的具体实现中,而变化的部分抽象为一个工厂接口。实质:推迟到子类去实例化对象。
抽象工厂模式:工厂方法的工厂接口+方法&具体工厂+方法的实现
解释:在工厂方法的单一产品线的基础上加上其他系列的产品线。