前言
《Head First Design Patterns》给的代码的例子是关于鸭子和火鸡,然而鸭子和火鸡离日常生活比较远。这次,我改编了实验楼网站上面的例子,关于插座和充电器。
图:不同国家的插座,插头不一样,呵呵哒
图:所以需要写一个适配器模式
图:我绘制的适配器类图
情景:美国的插座,提供110伏电压;中国的插座,提供220伏电压。
- 在中国,用两孔插座充电
- 然后坐飞机去美国旅游,假设美国某旅馆的墙上有只有一个三孔插座
- 幸好我有美国适配器,一头插到三孔插座,另一头转换成二孔插座,就可以给我的荣耀手机充电
- 在美国,通过美国适配器,用三空插座充电
总共7个类
一个三孔插座接口(Adaptee, 被适配者)
一个三孔插座类
一个两孔插座接口(Target, 适配目标)
一个两孔插座类
一个适配器(Adapter:实现Target, 组合Adaptee)
一个手机类(Client)
一个Main类,用于测试
talk is cheap, show me the code
三孔插座接口(Adaptee)
package adapter;
// adaptee(被适配者) ———— 假设在美国某旅馆的墙上,只有一个三孔插座
public interface ThreePinSoket
{
public void chargeWithThreePin();
public int voltage();
}
三孔插座类
package adapter;
// 实现一个具体的 adaptee
public