php教程:php设计模式介绍之适配器模式(2)_PHP技巧_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

php教程:php设计模式介绍之适配器模式(2)

作者:黑客防线网安PHP教程基地 来源:黑客防线网安PHP教程基地 浏览次数:0

本篇关键词:模式教程介绍libv2
黑客防线网安网讯:  为了适应HwLib的不同版本进行编码,先进行一些基于第一版本HwLib接口的测试:    classAdapterTestCaseextendsUnitTestCase{    functionTestOriginalApp(){    $lib=&newH...
  为了适应HwLib的不同版本进行编码先进行一些基于第一版本HwLib接口的测试:
  
  classAdapterTestCaseextendsUnitTestCase{
  
  functionTestOriginalApp(){
  
  $lib=&newHwLib;
  
  $this->assertEqual(
  
  ‘HelloWorld!’
  
  ,$lib->hello().$lib->world());
  
  }
  
  }
  
  你同样可以表明对这个库的简单升级将造成此应用程序的失效
  
  classAdapterTestCaseextendsUnitTestCase{
  
  TheAdapterPattern221
  
  functionTestOriginalAppWouldFail(){
  
  $lib=&newHwLib;//nowusingHwLibversion2
  
  $this->assertFalse(method_exists($lib,‘hello’));
  
  }
  
  }
  
  (这个测试以method_exists()为例证如果你简单地更换这个库的第二版本并且以TestOriginalApp()的测试再次运行AdapterTestCase,PHP就会运行失败,同时报告“致命错误:未定义的函数:hello()”)
  
  针对API“升级”的解决办法就是创建一个适配器(Adapter)。
  
  第一步是获得第二版本HwLib的实例的一个引用,并且把它加入到你的Adapter类中。
  
  classHwLibV2ToV1Adapter{
  
  var$libv2;
  
  functionHwLibV2ToV1Adapter(&$libv2){
  
  $this->libv2=&$libv2;
  
  }
  
  }
  
  这个范例展示了将这个实例传递给构造函数的过程,你也可以运用Factory或Singleton,或者其它适合你要求的创建模式,来创建一个新的实例。(通过前两章,你应该对HwLibV2ToV1Adapter的编写用途很熟悉了)
  
  当得到第二版本HwLib的时候,你如何使它在第一版本HwLib的实例中体现?
  
  classHwLibV2ToV1Adapter{
  
  var$libv2;
  
  functionHwLibV2ToV1Adapter(&$libv2){
  
  $this->libv2=&$libv2;
  
  }
  
  functionhello(){
  
  return$this->libv2->greet();
  
  }
  
  functionworld(){
  
  return$this->libv2->world();
  
  }
  
  }
  
  HwLibV2ToV1Adapter::hello()方法代表了$libv2对象的greet()方法。
  
  接着,你该如何在程序中使用它?
  
  classAdapterTestCaseextendsUnitTestCase{
  
  functionTestOriginalAppWithAdapter(){
  
  $lib=&newHwLibV2ToV1Adapter(newHwLib);
  
  $this->assertEqual(
  
  ‘GreetingsandSalutationsWorld!’
  
  ,$lib->hello().$lib->world());
  
  }
  
  }
  
  
    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-17482-1.html
网站维护教程更新时间:2012-09-21 05:19:51  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer