适配器模式(Adapter Pattern)
最近在学习设计模式,看了一些有关的书和博客,有了一点理解。算是自我的小总结,抛砖引玉,希望可以给大家一些启发。
简单地说,适配器模式:将某个对象的接口适配为另一个对象所期望的接口。
小例子:我们知道,电厂供电标准电压220V,而我们的许多用电设备并不仅限于220V,这时候,适配变压器成了一个伟大的发明。通过适配变压,使得电压可以适合任何设备的供电。同理,适配器模式可以这样简单的理解:当我们在调用已有的类库或者某些功能服务时,可以经过适配器类的处理,使得在原有功能更加特殊化、适用某一类对象。
1.类的Adapter UML图
类结构图:
代码:
1 interface AllPower{ 2 function GetPower(); 3 } 4 // 220V电源类; 5 class Power{ 6 // 从电源中得到220V的电压; 7 function GetPower220V(){ 8 } 9 } 10 // 适配器类(充电器); 11 class Adapter extends Power implements AllPower{ 12 // 得到想要电压; 13 function GetPower(){ 14 this->GetPower220V(); 15 echo("得到设备的额定电压!"); 16 } 17 } 18 class Equip{ 19 // 这里相当于是设备; 20 function a(){ 21 $Target = new Adapter(); 22 $b=$Target->GetPower(); 23 echo "设备:".$b; 24 } 25 }
在ZendFrame work中,链接Mysql数据库时,运用Adapter拿到适配器实现数据库连接。
参考博客:http://www.cnblogs.com/houleixx/archive/2008/03/04/1090214.html
参考书籍:《PHP设计模式》Aaron Aaray http://book.douban.com/subject/4865086/