java和php(其他语言大同小异)实现js(jq)方法链(链式方法)
前言
js的超级灵活的特性让我着迷,jq库的实现也让我对以前语言的结构有了别的认识,其中方法链是让我最着迷的地方!例如:obj.children('.listinfo') .text('重试') .removeClass('orange') .addClass('red') .show() .click(function () { tryAgain(); });
这是我的短链接网站里面的一个方法,当链接生成失败,获取其子元素listinfo,改其text为重试,颜色改为红色,然后显示出来并绑定重试方法!
实现
那么,现在我来用java和php(其他语言大同小异)来实现这个迷人的结构!
方法链需要满足以下条件(个人认为)
1. 对返回值无操作或者不重要
2. 执行后基本上能成功
就以属性设置为例子
JAVA
public class user{ private Integer id; private String name; private String email; private String phone; public user setId(Integer id){ this.id=id; return this; } public user setName(String name){ this.name=name; return this; } public user setEmail(String email){ this.email=email; return this; } public user setPhone(String phone){ this.phone=phone; return this; } }
public class test{ public static void main(String[] args){ (new user()) .setId(0) .setName("平平") .setEmail("pingping@pingping6.com") .setPhone("10000000000"); } }
PHP
class user{ private $id; private $name; private $email; private $phone; public function setId($id){ $this->id=$id; return $this; } public function setName($name){ $this->name=$name; return $this; } public function setEmail($email){ $this->email=$email; return $this; } public function setPhone($phone){ $this->phone=$phone; return $this; } } (new user) ->setId(0) ->setName("平平") ->setEmail("pingping@pingping6.com") ->setPhone("10000000000");
评论
2条评论七七 Lv.1 回复
优秀
平平
回复
回复了七七:( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃