PHP连贯接口
浏览:6439次 出处信息
什么是连贯接口?经常用jQuery的朋友一定对下面的代码非常熟悉:
以下是代码片段: $(’div’).find(’element’).hide(); |
像上面这样,在一个方法后直接调用另一个同级方法,我们习惯上称其连贯接口。
连贯接口有什么好处呢?拿我们常用的工厂模式来举例:
以下是代码片段: $sql= new Joy_Db_SqlBuilder(); $sql->select(); $sql->table(’test’); $sql->where(’id’ , ’=’ , ’1’); |
换成连贯接口来实现的代码会是怎样呢?
以下是代码片段: $sql= new Joy_Db_SqlBuilder(); $sql->select() ->table(’test’) ->where(’id’ , ’=’ , ’1’); |
可以看到在上面的代码中,相对以往的工厂模式的写法,使用连贯接口能稍微节省一些代码量,并且,代码逻辑性也更强。
如何实现连贯接口呢?这里我引用JoyPHP中的一段代码
以下是代码片段: class Joy_Db_SqlBuilder { /** * select方法 * * @return Joy_Db_SqlBuilder */ public function select() { $this->_args = array(’method’=>’select’); return $this; } /** * 定义所用的表名 * * @param string $name * @param string $alias * @return Joy_Db_SqlBuilder|string */ public function table() { // @todo something // 返回this,实现连贯接口 return $this; } } |
从代码中可以看到,每个方法都返回了$this,而$this表示的正式Joy_Db_SqlBuilder的实例,因此才可以继续调用其方法。
连贯接口很简单,写起来也很美,但是却遇到一个棘手的问题,类似ZendStudio,Eclipse之类的IDE似乎并不支持连贯接口的自动提示?其实结局的方法也很简单,只要像上面的代码注释那样,遵循PHPDoc的代码注释规范,在@return后注明返回的对象类型,这些IDE也同样能实现自动提示。
建议继续学习:
- Paypal接口详细代码(PHP版,非API接口) (阅读:18431)
- 面向“接口”编程和面向“实现”编程 (阅读:12635)
- 存储基础知识之——硬盘接口简述 (阅读:6264)
- JavaScript Interface 接口的实现 (阅读:5890)
- 干嘛不去掉“I”和“Impl”? (阅读:5749)
- 使用Mitmproxy分析接口 (阅读:5514)
- 接口设计规则一:让你的接口会说话 (阅读:3590)
- 以用户为中心的 API 异常设计 (阅读:2467)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
后一篇:如何查看Optimizer版本 >>
文章信息
- 作者:RayChou 来源: 周帆的web实验室
- 标签: 接口 连贯
- 发布时间:2009-11-04 09:10:56
建议继续学习
近3天十大热文
- [69] Twitter/微博客的学习摘要
- [67] IOS安全–浅谈关于IOS加固的几种方法
- [65] 如何拿下简短的域名
- [65] android 开发入门
- [63] find命令的一点注意事项
- [62] Go Reflect 性能
- [61] 流程管理与用户研究
- [60] Oracle MTS模式下 进程地址与会话信
- [59] 图书馆的世界纪录
- [57] 读书笔记-壹百度:百度十年千倍的29条法则