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

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

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

本篇关键词:模式教程介绍HwLib
黑客防线网安网讯:  刚才的程序测试和现在的程序代码都有一定程度的脆弱性。有没有方法在长久的使用中让它们都更易于维护呢?当然是有的!    回忆一下(第三章)Factory是如何提供一个更灵活的方法来创建...
  刚才的程序测试和现在的程序代码都有一定程度的脆弱性有没有方法在长久的使用中让它们都更易于维护呢?当然是有的!
  
  回忆一下(第三章)Factory是如何提供一个更灵活的方法来创建类的实例的为了更好地在将来检验这些代码就从一个简单的Factory函数开始:
  
  function&HwLibInstance(){
  
  returnnewHwLib;
  
  }
  
  为了测试Factory,直接调用它而不创建它的实例:
  
  classAdapterTestCaseextendsUnitTestCase{
  
  functionTestAppWithFactory(){
  
  $lib=&HwLibInstance();
  
  $this->assertWantedPattern(
  
  ‘/w+World!$/’
  
  ,$lib->hello().$lib->world());
  
  }
  
  }
  
  有两个方面需要注意:Factory创建了对象而用于确认的assertEqual()函数被修改为更灵活的assertWantedPattern()。你现在可以用一个正则表达式来捕获你在库中所要查找的“核心”,但可能会使这个测试本身变得脆弱。
  
  接下来,升级HwLib库。当安装了HwLib第二版,你就可以修改HwLibInstance()函数来适应新的版本。
  
  function&HwLibInstance($ver=false){
  
  switch($ver){
  
  case‘V2’:
  
  returnnewHwLib;
  
  default:
  
  returnnewHwLibV2ToV1Adapter(newHwLib);
  
  }
  
  }
  
  现在重新运行AdapterTestCase。测试通过!(绿色进度条正常。)因为原始的程序没有传递一个参数,HwLibInstance会默认返回封装在HwLibV2toV1Adapter中的HwLib的一个实例。尽管如此,如果你编写了新的代码,你可以传递进一个“V2”的参数让这个函数自动选择HwLib的新版本而不用去调整它。
  
  以后,如果你选择升级HwLib的第三版,应该将Factory做如下的调整:
  
  function&HwLibInstance($ver=false){
  
  switch($ver){
  
  case‘V3’:
  
  returnnewHwLib;
  
  case‘V2’:
  
  returnnewHwLibV3ToV2Adapter(newHwLib);
  
  default:
  
  returnnewHwLibV2ToV1Adapter(
  
  newHwLibV3ToV2Adapter(newHwLib));
  
  }
  
  }
  
  
    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-17483-1.html
网站维护教程更新时间:2012-09-21 05:19:51  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer