设计模式学习笔记——工厂

来源:互联网 发布:我的世界mac怎么装mod 编辑:程序博客网 时间:2024/05/16 19:01

简单工厂、工厂方法、抽象工厂。

所谓的工厂,就是生产东西的。在设计模式这里,工厂就是返回对象的。所以工厂方法、抽象工厂都是创建型的设计模式(简单工厂不算在23种设计模式里面)。

简单工厂、工厂方法、抽象工厂,一个比一个复杂,但又互有关联,比如工厂方法可以退化成简单工厂,工厂方法可看成特殊的抽象工厂。

1、简单工厂

简单工厂最简单,主要是一个包办一切的工厂类,根据参数,返回相应的对象。这些对象通常都继承自同一个抽象类或接口。

缺点是要生产新对象,要改工厂类。


2、工厂方法

有一个抽象工厂类,然后多个具体工厂类继承自该抽象类。每个工厂类只负责生产一种对象。简单工厂只有一个生产类,工厂方法是多个生产类。

相比简单工厂,要生产新的对象,只需添加新的工厂类即可。

如果只有一个具体工厂类,工厂方法就退化成了简单工厂。


3、抽象工厂

工厂方法一个工厂类生产一种对象,产品多的话,类未免太多了一点。抽象工厂是一个工厂类可以生产一组对象。因此,工厂方法可以看做是特殊的抽象工厂。

如果一个工厂类只生产一个对象,则抽象工厂退化成工厂方法。