Java 设计模式
1、爪哇语言结构性模式之变压器模式介绍
1.1、什么是结构性模式
结构性模式描述类和对象怎样结合在一起成为较大的结构。 结构性模式描述两种
不同的东西:类与类的实例。根据它们所描述的东西的不同, 结构性模式可以分为类
结构模式和实例结构模式两种。
类结构模式使用继承(inheritance)来把类,接口等组合在一起,形成更大的结构。
当一个类从父类继承,并实现某接口时,这个新的类就把父类的结构和接口的结构结合
起来。 类结构模式是静态的。一个类结构模式的典型的例子,就是类形式的变压器模
式。
实例结构模式描述各种不同类型的把对象组合在一起,实现新的功能的方法。实例
结构模式是动态的。 一个典型的实例结构模式,就是代理人模式,代理人模式将在以
后介绍。其它的例子包括后面将要介绍的复合模式, 飞行重量模式,装饰模式,以及
实例形式的变压器模式等。
有一些模式会有类结构模式的形式和实例结构模式的形式两种,成为以上两种形式
的结构模式的极好注解。 本节要介绍的变压器模式就是这样,它有类形式和实例形式
两种。
1.2、变压器模式的介绍
变压器模式把一个类的接口变换成客户端所期待的另一种接口。变压器模式使原本
无法在一起工作的两个类能够在一起工作。 如前所述,变压器模式是关于类结构的结
构性模式,因而是静态的模式。
这很象变压器(Adapter)---变压器把一种电压变换成另一种电压。当我把美国的电器
拿回中国大陆去用的时候, 我就面临电压不同的问题。美国的生活用电压是 110 伏,
而中国的电压是 220 伏。我如果要在中国大陆使用我在美国使用的电器, 我就必须有
一个能把 220 伏电压转换成 110 伏电压的变压器。而这正象是本模式所做的事,因此
此模式被称为变压器模式。
读者可能也会想到,Adapter 在中文也可翻译为转换器(适配器)。实际上,转换器
(适配器)也是一个合适的名字。仍用电器作例子, 美国的电器的插头一般是三相的,
即除了阳极,阴极外,还有一个地极。中国大陆的建筑物内的电源插座一般只有两极,
没有地极。 这时候,即便电器的确可以接受 220 伏电压,电源插座和插头不匹配,也
使电器无法使用。 一个三相到两相的转换器(适配器)就能解决这个问题。因此此模
式也可被称为转换器(适配器)模式。
同时,这种做法也很象包装过程,被包装的物体的真实样子被包装所掩盖和改变,
因此有人把这种模式叫做包装(Wrapper)模式。事实上, 我们经常写很多这样的
wrapper 类,把已有的一些类包裹起来,使之能有满足需要的接口。
变压器模式有类形式和实例形式两种不同的形式。