工厂模式分为3种:
- 简单工厂模式 : 创建对象(可以理解成是工厂方法的一个特例)一个对象
- 工厂方法模式 : 创建工厂类 一个对象
- 抽象工厂模式 : 增强工厂方法 一类对象
简单工厂书本中解释是:提供一个创建对象实例的功能,而无需关心其具体的实现。被创建实例的类型可以是接口,抽象类,具体实例。
简单工厂的本质是选择实现。意思就是根据传入的值选择实现相应的类,是创建一个足球对象还是篮球对象依据入参。
工厂方法书中的解释是:定义一个可以创建对象的接口,让子类决定实例化哪一个类,Factory Method 是一个类的实例化延迟到其子类。
工厂方法的主要功能是让父类在不知道具体实现的情况下,完成自身的功能调用;而具体的实现延迟到子类来实现。
工厂方法模式的本质是延迟到子类来选择实现。
抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。(DAO和抽象工厂有很大联系)
本质是选择产品簇的实现。(相同归属的一类产品)