在编程中,我们可以经常遇到这样一种场景:一个实例不断调用它自身的方法,像一条链条一样进行调用
这样的调用你可能在Ajax中,在页面中添加标签:
$("<p>").append($("<span>").text(list[i].name)).appendTo("#result");
?
也可能在HQL的查询语句中:
User loginUser = (User)session.createQuery("from User where username=? and password = ?")
???.setParameter(0, user.getUsername()).setParameter(1,user.getPassword())
????.uniqueResult();
?
那么,怎么样实现链式调用呢?
演示:
public class Chain {
public Chain(){}
public Chain show(){
System.out.println("链式调用...");
//返回该实例对象
return this;
}
}
//测试
@Test
public void test(){
Chain chain = new Chain();
chain.show().show();
}
//运行结果
链式调用...
链式调用...
?
最后,总结一下链式调用可以应用的场景:
1.一个实例的对象需要多次赋值
2.没有特别要求方法的返回类型,要求得到调用后的实例类
3.在一个事务中,需要进行执行连续不间断的原子操作
原文:http://610214577.iteye.com/blog/2221311