Spring框架之我见(一)——工厂模式

大家好,今天给大家分享一些Spring的学习心得,在讲Spring之前,先和大家分享Spring中核心的设计模式。

工厂模式

在聊概念之前我先问问大家:什么是工厂?

这个很简单,工厂就是生产物品的地方,比如,鞋子工厂生产鞋子,工厂衣服生产衣服,汽车工厂生产汽车。

我们都是知道,Java是一种面向对象的语言,那么对象是不是也会有对象工厂呢?

答案是肯定的,而工厂模式就是实现了Java对象工厂的一种创建性设计模式。

概念:工厂模式(Factory Pattern)就是一个创建对象的接口。不同的子类可以创建不同的对象。

知道了什么是工厂模式,那我们不禁要问了使用工厂模式和使用new关键字创建对象有什么区别?我们为什么要费力去为创建对象再专门写一个对象工厂呢?

我理解的工厂模式主要适用于以下几种情况:

  1. 需要创建复杂对象的的时候都可以使用工厂模式。
  2. 创建过程更灵活,比如说我们创建JDBC的Connection连接需要设置驱动、用户名密码,Url 我们就可以使用工厂模式。
  3. 最后,也是最重要的一点,就是解耦。比如说,我现在要换一个数据库,我直接在工厂里重写一个新的创建方法就行了,实际的JDBC的操作几乎不需要去更改。

这里我只是说一下我自己的理解,如果大家对工厂模式需要更加深入的了解可以参考菜鸟教程,其中写得更加详细。

抽象工厂模式

既然聊到这里,我们就不得不提一下工厂模式的加强版——抽象工厂模式(Abstract Factory Pattern),其实,在我的理解中抽象工厂就是从其他工厂获取原料的工厂。
如果我们需要一辆汽车,我们不需要自己造,可以直接从汽车工厂里拿,这就是工厂模式,但是汽车工厂也不是从零生产的,汽车工厂需要从发动机工厂买发动机,轮胎工厂买轮胎,对不对,汽车工厂就相当于那个抽象工厂。

相对于工厂模式,抽象工厂模式生产的对象更加具体,也更加丰富,但相对编码也更加复杂。具体的抽象工厂模式的实现大家可以参考菜鸟教程

知道了工厂模式和抽象工厂模式的区别,请大家使用的时候应该根据具体的情况进行选择。

相关推荐