适配器模式(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/

 

 

posted @ 2013-07-23 22:39  shdong  阅读(251)  评论(0编辑  收藏  举报