工厂模式的分类:
(1)简单工厂(Simple Factory)模式
(2)工厂方法(Factory Method)模式
(3)抽象工厂(Abstract Factory)模式
概念而已,一看见有点不懂很正常,关键是坚持往下看。
在开源框架中的使用
(1)Spring中通过getBean(“xxx”)获取Bean;
(2)Spring中rabbitmq的连接工厂类 ConnectionFactory
(3)jdbc创建连接工厂类 DriverManager
(4)slf4j的日志工厂类 LoggerFactory
为什么要用工厂模式
(1)解耦:把对象的创建和使用的过程分开
(2)降低代码重复: 如果创建某个对象的过程都很复杂,需要一定的代码量,而且很多地方都要用到,那么就会有很多的重复代码。
(3) 降低维护成本 :由于创建过程都由工厂统一管理,所以发生业务逻辑变化,不需要找到所有需要创建对象的地方去逐个修正,只需要在工厂里修改即可,降低维护成本。
还是懵,不要紧,这些基本来说不是很重要,接着往下看
简单工厂模式
(1)介绍
严格的说,简单工厂模式并不是23种常用的设计模式之一,它只算工厂模式的一个特殊实现。简单工厂模式在实际中的应用相对于其他2个工厂模式用的还是相对少得多,因为它只适应很多简单的情况。
(2)简单工厂模式角色分配
工厂(Factory)角色:简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调用,创建所需的产品对象。
抽象产品(Product)角色:简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。
具体产品(Concrete Product)角色:简单工厂模式的创建目标,所有创建的对象都是充当这个角色的某个具体类的实例。
下面才是真正的我们要看的,一定要仔细看,这是基础,后面会紧接着讲述工厂方法模式,抽象工厂方法模式
main发放的测试结果:
公交车行驶中。。。
出租车行驶中。。。
(3) 使用反射机制改善简单工厂
main发放的测试结果:
公交车行驶中。。。
出租车行驶中。。。
如果代码你仔细看的话,你会发现原来这么简单,其实就是很简单,这个只是一个思路或者是经验的总结,持续关注,跟进讲解工厂方法模式,抽象工厂方法模式以及其他设计模式