之前总结了一下工厂模式,其实准确地说是简单 工厂模式,在它的基础上再进行抽象就可以得到一种新的模式:抽象工厂模式。
专业一点的定义为:
抽象工厂模式(Abstact Factory)是一种常见的软件设计模式。该模式为一个产品族提供了统一的创建接口。当需要这个产品族的某一系列的时候,可以为此系列的产品族创建一个具体的工厂类。
In a word:
抽象工厂可以看做是多个简单工厂的集合。我们往往把一种简单工厂看做只生产一类产品族群的工厂。
什么时候用抽象工厂模式?当我们需要的产品(也就是对象)不止一种族群的时候,就可以使用该模式。下面给出uml图,便于理解结构关系:
在原本的工厂类之上再抽象出一个基类(抽象类),定义公共 接口以待实现。不同的产品族中的产品也抽象出一个基类,对产品功能特性进行规范。
比如Linux 和windows系列产品族,各自有自己的产品。
Linux: 手机(安卓,还有ubuntu手机),电脑系统(redHat,ubuntu,centos等发行版),平板(安卓)。
windows:手机(lumia,wp手机),电脑系统(windows xp,7,8,8.1,10 or other),平板(surface)。
(待续....)
时间: 2024-10-07 13:25:22