天天看点

Java23种设计模式——3.创建型模式之工厂模式工厂模式:工厂模式的实现:工厂模式的优缺点:工厂模式在哪里可以用到:

Java中除去有设计原则之外,还有23中设计模式。

这些模式都是前辈们一点一点积累下来,一直在改进,一直在优化的,而这些设计模式可以解决一些特定的问题。

并且在这些模式中,可以说是将语言的使用体现的淋漓尽致。

那我们今天要学习  创建型模式  中的  工厂模式  !

工厂模式:

先来说说什么是工厂模式:

工厂模式,顾名思义,就是有一个工厂,你呢,就是厂长,你需要什么,就告诉工厂,造个什么,然后造好之后拿来用。这就是通俗的理解。

这个工厂模式呢,也是一种创建对象的最佳方式之一,我们在创建对象的时候,不会对客户暴露我们是怎么创建的,而是通过同一个接口来获取。

工厂模式的实现:

我们呢,先来说一下这个的实现,稍后我来说这个的优点啊、缺点等等。

第一步,打开eclipse,创建一个包。com.java.demo.factory。

因为我今天想吃包子和饺子,所以我们创建一个面粉厂!

Java23种设计模式——3.创建型模式之工厂模式工厂模式:工厂模式的实现:工厂模式的优缺点:工厂模式在哪里可以用到:

创建好之后,我们先暂时放着,不动,然后创建面粉这个接口!注意,是接口!!!

然后接口中我们写一个创建面团的方法,这个方法最后让这个具体的东西去实现(后面就会明白我说的啥)。

Java23种设计模式——3.创建型模式之工厂模式工厂模式:工厂模式的实现:工厂模式的优缺点:工厂模式在哪里可以用到:

有了这个面粉的接口之后,我们来创建这个具体的东西,去实现这个接口。

我们创建一个饺子,然后实现这个接口。

Java23种设计模式——3.创建型模式之工厂模式工厂模式:工厂模式的实现:工厂模式的优缺点:工厂模式在哪里可以用到:

有了饺子之后,我们再弄个面条,也实现这个接口。

Java23种设计模式——3.创建型模式之工厂模式工厂模式:工厂模式的实现:工厂模式的优缺点:工厂模式在哪里可以用到:

现在呢,有饺子,还有面条啦,我们再反过来,打开刚刚创建的面粉厂。

Java23种设计模式——3.创建型模式之工厂模式工厂模式:工厂模式的实现:工厂模式的优缺点:工厂模式在哪里可以用到:

如果说,告诉工厂的是饺子,我们就创建饺子面团,如果是面条,那么就是面条的面团。

然后来测试。我们写一个FlourFactoryTest,然后实例化这个工厂。

Java23种设计模式——3.创建型模式之工厂模式工厂模式:工厂模式的实现:工厂模式的优缺点:工厂模式在哪里可以用到:

然后,我们告诉工厂,让他弄啥面。

Java23种设计模式——3.创建型模式之工厂模式工厂模式:工厂模式的实现:工厂模式的优缺点:工厂模式在哪里可以用到:

是不是,这样我们就让这个工厂创建了这个做饺子的面团。相同的,面条也可以。

这样,我们的这个简单工厂模式就创建好了。如果我们还想创建其他的东西,比如说披萨,只需要创建披萨类,让这个披萨实现面粉类,再告诉工厂可以生产披萨了,就可以了。

工厂模式的优缺点:

先来说优点,我们就用上面的例子:

1.  我们要创建啥,只需要知道名字就可以,不需要知道其他的东西。

2.  扩展能力好,想增加其他的面粉类食品,只需要扩展一个类,实现面粉,并告诉工厂就好。

知道了优点之后我们再来说缺点:

每一次加了一个东西,都需要增加一个具体类、还有工厂的一个实现。最后增加了一大堆。这样就复杂了,我们还得去维护这个工厂。这就不好了。

工厂模式在哪里可以用到:

简单说一个,数据库。

关系型数据库中,我们常用的有Orcale、DB2、Mysql、Sql Server等等,我们用Java做连接的时候,就是用的工厂模式这种思想,想连接那种数据库,就更换那种数据库的方言、和驱动包就好,其他的呢,我们不用操心。

这个等我后面更新框架这一栏的时候,我们来说这个思想!

继续阅读