读书人

Abstract Factory形式学习笔记

发布时间: 2012-09-18 16:21:42 作者: rapoo

Abstract Factory模式学习笔记

????适用情况:一个系统需要生成一套产品,而这套产品中的每种产品又有不同的系列(比如不同系列的外观不同,或行为不同)。但一套产品中的所有产品必须是一个系列的,这样才能组成一套。但系统希望与产品的生产相独立,系统希望可以在其不作改变的情况下替换产品系列。

?

??? 解决方案:首先,为该套产品中每一个产品定义统一的接口。每个产品的不同类型都是该接口的一个实现。其次定义一个抽象的工厂类或接口,其中定义了生产不同产品的接口。对应于每一个系列会有一个实体工厂类去实现抽象工厂类从而生产这一系列的各种产品。

?

??? 类图:

?


Abstract Factory形式学习笔记
?

? GOF中的例子:


Abstract Factory形式学习笔记
?? 实际应用:在作Java UI开发的时候,应用程序在不同的操作系统下显示的是与这个操作系统外观相符的UI组件。但开发人员并不关心这些,开发人员只与组件接口以及生成组件的抽象工厂打交道。在不同操作系统上由对应的实体工厂类来生成相应外观的组件。比如,AWT中各个组件的Component Peer就定义了每组件的接口,而不同操作系统下会有不同的Concrete Component Peer来实现。而ToolKit就是个抽象工厂,由各操作系统下不同的Concrete ToolKit实现类生产对应操作系统下的Concrete Component Peer。

?

?? 与其它设计模式的比较:TBD

读书人网 >软件架构设计

热点推荐