平平博客平平博客
user side
平平
pingping@pingping6.com
平平网络pingping6.com

java和php(其他语言大同小异)实现js(jq)方法链(链式方法)

代码片段2020-06-08 62  2 
摘要: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");

继续阅读
标签:jqjsjavaphpPythongo方法链链式方法编程特色语言风格自由
写代码真的很累!麻烦点个赞,评论一下,然后分享给自己的小伙伴!
打赏
海报分享
发表评论
表情
快捷
私密

右滑验证
Lv.1
七七
优秀
站长
平平
@七七:( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃