天天看点

【设计模式之三工厂】

前言:

本文中所讲解的三工厂指的是简单工厂,工厂方法,抽象工厂设计模式,在大话设计模式中,三个工厂最后以三姐妹的身份出现在比赛现场中,本文中将三个工厂联系起来进行学习。

内容:

(一)简单工厂模式

1.定义

用一个单独的类来创造实例的过程,这是工厂的定义。那么简单工厂是由一个工厂对象决定创建出哪一种产品类的实例。它的实质就是根据工厂类传入的参数决定实例化那个对象。当你需要什么,只需传入一个正确的参数,就可以获取需要的对象,而无需知道其创建的细节。

2、eg

当你想吃苹果,只需到超市去买,而无需知道果园是如何生产出苹果的,那么果园就相当于一个工厂。

3.UML图

【设计模式之三工厂】

(二)工厂方法

1.定义

定义一个用于创建的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。工厂方法定义了一个抽象工厂,抽象工厂的下面有多个子类工厂,故延迟到子类指的是子类工厂。

2.eg

我现在想吃苹果和黄瓜,那么我需要去水果店和蔬菜店,这时需要定义一个抽象工厂,食物工厂,下面定义具体的水果工厂和蔬菜工厂,进而实例化类。

3.UML图

(三)、抽象工厂

1.定义

提供创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类

这里对象指的是一系列,比如书中的例子指的是SqlServer和Access属于同一系列的两个不同的对象,比如同样是苹果,有苹果干、水果、苹果罐头等等,这时需要考虑抽象工厂模式。

2.eg

我想吃苹果系列的,苹果干、苹果罐头、新鲜的苹果等等,这时需要的抽象工厂提供给我干果店、水果店、超市。这就是抽象工厂使用的场合。

3.UML图

【设计模式之三工厂】

(四)三工厂之比较

工厂方法是简单工厂模式的进一步抽象和推广,抽象工厂是工厂方法的升级版

【设计模式之三工厂】

总结:

继续阅读