网站制作学习网经验与学习→正文:适配器模式
字体:

适配器模式

经验与学习 2010/10/20 17:51:51  点击:不统计

http://%77%77%77%2E%66%6F%72%61%73%70%2E%63%6E
php设计模式之1-适配器模式.
适配器问题:当一个类已经定义假设为a,需要有新的功能,但是新的功能需要有现有a的对象,或者添加了新行为等.
当遇到这种情况时候,则适用适配器.
解决方案:适配器采用新的类b,参数为a的实例,b可以添加新的功能,也可以通过a的实例来调用a的方法.
举例:
<?php
class forasp{
 function writeurl(){
 echo "http://www.forasp.cn/";
 }
 function getwebname(){
 return "网站制作学习网!";
 }
}
//输出:前面两个
$tobj = new forasp();
$tobj->writeurl();
echo $tobj->getwebname();
//采用适配器
class newforasp{
 private $obj;
 function __construct($obj){
 $this->obj=$obj;
 }
 function write(){
 $this->obj->writeurl();
 echo $this->obj->getwebname();
 }
 function othermethod(){
 echo "其他方法";
 }
}
$tobj2 = new newforasp($tobj);
$tobj2->write();
$tobj2->othermethod();
?>
这样保留了原来的类,又可以通过新的名称调用原来的类,扩展了方法.
适配器的关键思路:保留原方法,原方法的实例作为新方法的参数,新类中可以有新方法.新类通过原方法的实例也实现了原方法的功能.
forasp.cn

·上一篇:php设计模式 >>    ·下一篇:建造者模式 >>
推荐文章
最新文章