适配器模式
将一个类的接口,转换成客户期望的另一种接口。适配器就是让本来接口不兼容的类可以合作无间。
问题引例:
1、当墙上的两相插头和你的笔记本三相电源时,你会想起来什么?
2、如何分清各个部分:客户、适配器、被适配者?什么是目标接口?
问题1:
答:需要一个二相插头转三相插头的三相转接头。被笔记本三相电源使用;使用墙上的两相电源插座。
问题2:
答:从第一引例中,分析得出
-客户:笔记本三相电源插头
-适配器:二相插头转三相插头的三相转接头
-被适配者:墙上的两相插座
-目标接口:转接头上的三相插口(从客户出发,他想使用的方法)
UML图及分析过程
客户的需求是一定的,它需要三相电源;客观的现实是一定的(相对来说),它是个两相电源
推理出:需要适配器,他被别人调用的是三相电源方法;调用别人的两相电源方法;
继续推理:他的方法被别人调用,希望别人只知道他的接口,需要接口的实例;他调用别人的方法,需要别人的实例;
接着推理:客户代码不用改动,被适配者不用改动,添加一个适配器的接口(客户代码想要调用的方法),添加一个适配器(实现刚才的接口,拿到被适配者的实例,方法转接)