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

php教程:php设计模式介绍之规范模式(2)

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

本篇关键词:模式规范教程介绍
黑客防线网安网讯:  样本代码    规范模式的核心是一个带有IsSatisfiedBy()方法的对象,IsSatisfiedBy()方法接收一个变量来评估并且返回一个基于规范标准的布尔值。    “目的地是足够温暖的”的标...
  样本代码
  
  规范模式的核心是一个带有IsSatisfiedBy()方法的对象IsSatisfiedBy()方法接收一个变量来评估并且返回一个基于规范标准的布尔值
  
  “目的地是足够温暖的”的标准可能就是:
  
  classTripRequiredTemperatureSpecification{
  
  publicfunctionisSatisfiedBy($trip){
  
  $trip_temp=$trip->destination->getAvgTempByMonth(
  
  date(‘m’,$trip->date));
  
  return($trip_temp>=$trip->traveler->min_temp);
  
  }
  
  }
  
  下面是一些测试用来检验这个规范是如何工作的
  
  一个最初的个体测试事例提供了一些目的地来一起工作:
  
  classTripSpecificationTestCaseextendsUnitTestCase{
  
  protected$destinations=array();
  
  functionsetup(){
  
  $this->destinations=array(
  
  ‘Toronto’=>newDestination(
  
  array(24,25,33,43,54,63,69,69,61,50,41,29))
  
  ,’Cancun’=>newDestination(
  
  array(74,75,78,80,82,84,84,84,83,81,78,76))
  
  );
  
  }
  
  }
  
  (构造这些目的地(Destination)需要在实例化的时候输入一个包含每月平均温度的数组。做为一个美国的作者,在这些例子中我选择了华氏温度。对应的,Vicki期望的华氏温度70度等价于摄氏温度21度)
  
  下一个测试构建了一个旅行者(Traveler),并且设置了它的首选最低温度和旅行日期同时也选择了一个目的地。这最初的组合“最低温度70度(华氏温度),目的地多伦多(Toronto),日期二月中旬”会和期望的一样,是不能通过的。
  
  classTripSpecificationTestCaseextendsUnitTestCase{
  
  //...
  
  functionTestTripTooCold(){
  
  $vicki=newTraveler;
  
  $vicki->min_temp=70;
  
  $toronto=$this->destinations[‘Toronto’];
  
  $trip=newTrip;
  
  $trip->traveler=$vicki;
  
  $trip->destination=$toronto;
  
  $trip->date=mktime(0,0,0,2,11,2005);
  
  $warm_enough_check=newTripRequiredTemperatureSpecification;
  
  $this->assertFalse($warm_enough_check->isSatisfiedBy($trip));
  
  }
  
  }
  
  但是,接下来的这个组合“70度,二月中旬,Cancun”就会通过,和我们期望的一样。
  
  classTripSpecificationTestCaseextendsUnitTestCase{
  
  //...
  
  functionTestTripWarmEnough(){
  
  $vicki=newTraveler;
  
  $vicki->min_temp=70;
  
  $cancun=$this->destinations[‘Cancun’];
  
  $trip=newTrip;
  
  $trip->traveler=$vicki;
  
  $trip->destination=$cancun;
  
  $trip->date=mktime(0,0,0,2,11,2005);
  
  $warm_enough_check=newTripRequiredTemperatureSpecification;
  
  $this->assertTrue($warm_enough_check->isSatisfiedBy($trip));
  
  }
  
  }
  
  
    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-17411-1.html
网站维护教程更新时间:2012-09-21 05:18:25  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer