快速业务通道

php设计模式介绍之策略模式

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22
让我们开始编写这段代码来进行测试。首先,如果缓存中没有该数据, isValid() 方式 函数应该返回非值(false)。

class VarCacheTestCase extends UnitTestCase {
function TestUnsetValueIsInvalid() {
$cache =& new VarCache (‘foo’);
$this->assertFalse($cache->isValid());
}

因为VarCache现在没有代码,所以最简单的方式就是先构造一个方式函数。

class  VarCache {
function isValid() {}
}

这样,我们就可以继续了。

class VarCacheTestCase extends UnitTestCase {
function  TestUnsetValueIsInvalid() { /* ... */ }
function TestIsValidTrueAfterSet() {
$cache =& new VarCache(‘foo’);
$cache->set (‘bar’);
$this->assertTrue($cache->isValid());
}

上面的测试校验了缓存的数据是否是可用的。

开始编写cache类的主要部分。VarCache 引入一个 标识符, 所以constructor了一个应该记录它的对象实例。这里面还有一个set()的方式函数,用来把 数据存入缓存,或者当数据存在时,修改缓存当中的数据。

class VarCache {
var  php设计模式介绍之策略模式 - 凌众科技

快速业务通道

php设计模式介绍之策略模式

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22
content

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号

name;
function VarCache($name) {
$this->_name =  ‘cache/’.$name;
}
function isValid() {
return file_exists ($this->_name.’.php’);
}
function set() {
$file_handle =  fopen($this->_name.’.php’, ‘w’);
fclose($file_handle);
}
}

对象实例的参数 php设计模式介绍之策略模式 - 凌众科技

快速业务通道

php设计模式介绍之策略模式

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22
content

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号

name 存放了缓存的标识符。在这个简单的操作中, php设计模式介绍之策略模式 - 凌众科技
快速业务通道

php设计模式介绍之策略模式

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22
content

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号

name 被用来生成文件名(在实际的使用可能会数据库或者其它的数据源代替) set() 使用 fopen() 和 fclose() 来 “访问” 基于 php设计模式介绍之策略模式 - 凌众科技
快速业务通道

php设计模式介绍之策略模式

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22
content

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号

name的文件。当调用set()后, file_exists()在 VarCache::isValid()里面调用返回真(true)。

运行这个测试来产生一个我们预期的结果;但 是实际情况是报错!为什么呢?第一次运新的时候没有生成文件,所以第二次运行的时候找不到文件, 显然我们不希望这种情况出现。我们期望的是每一次运行代码都是互不影响的。

幸运的是,把总 体测试框架和特定功能的简单测试结合起来,我们就可以得到灵活的测试环境,并且在以后的测试中方 便地使用。UnitTestCase::setUp()实现框架的初始化,而UnitTestCase::tearDown()实现具体的测试过 程。

把以下这段代码加入到测试环境中以后,你可以确保每一个测试过程从开始的时候就各自独 立地运行:

The Strategy Pattern    127

class VarCacheTestCase  extends UnitTestCase {
function setup() {
@unlink (‘cache/foo.PHP’);
}
// ...
}

现在缓存的文件在每一 次测试执行之前都没删除掉了,这保证了每一次测试运行都是相互独立的。(测试驱动的开发更实用的 方法是你可以写一个VarCache::clear()方式函数去处理一个缓存的参数的清除工作。)

当上一 次代码执行出来的缓存结果被清除了,测试重新开始运行,这意味着你可以继续测试并编写新的代码。

class VarCacheTestCase extends UnitTestCase {
function setup()  { /* ... */ }
function TestUnsetValueIsInvalid() { /* ... */ } function  TestIsValidTrueAfterSet() { /* ... */ } function TestCacheRetainsValue() {
$test_val = ‘test’.rand(1,100);
$cache =& new VarCache (‘foo’);
$cache->set($test_val);
$this->assertEqual($test_val,  $cache->get());
}

上面的测试验证VarCache::get()返回的值是否与用 VarCache::set()设置的相同。

class VarCache {
var  php设计模式介绍之策略模式 - 凌众科技

快速业务通道

php设计模式介绍之策略模式

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22
content

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号

name;
fun

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号