1.简介

这个系列通过阅读设计模式的相关书籍,来对23种经典的设计模式进行系统的学习。这里我通过文档来记录个人对各种模式的理解。

2.工厂模式

在《设计模式:可复用的面向对象软件基础》(后面统称《设计模式》)一书中,就谈到了工厂方法模式和抽象工厂模式。工厂方法模式在其他网站和书中也叫做 工厂模式 ,其实我认为两者的关系就是抽象工厂模式需要借助工厂模式(工厂方法模式)来实现的。抽象工厂模式是升级版本的工厂模式。

2.1工厂模式更应该叫做工厂方法模式

经过个人阅读《设计模式》这本书,发现,工厂方法模式强调的是我的创建对象的那个工厂方法,B类通过A类的某个方法创建出来,那么就可以说用到了工厂模式(工厂方法模式),其中A类就是一个工厂,其创建B类的方法是工厂方法。
image.png

2.2 什么是抽象工厂模式

抽象工厂模式关注的点在工厂上,在《设计模式之禅》中的一个例子是女娲造人,人有黑、黄、白。创造黑人需要黑人的工厂类去创造,创造白人需要白人的工厂类去创造。创造黄人需要黄人的工厂创造。于是可以进行抽象出来一个 造人工厂,这是个抽象类,白、黑、黄人工厂继承这个抽象工厂。其实单看任何一个工厂的任何一个工厂方法都是一个工厂模式(工厂方方法模式)。
image.png