java 方法链式_java – 链式方法设计

听起来你想要一个流畅的界面来构建服务类.番石榴也做类似的事情.你会做这样的事情:

public interface Cal {

int plus(int a, int b);

}

public class CalBuilder {

class InternalCal implements Cal {

boolean useAbs;

boolean checkArgs;

public int plus(int a, int b) {

if(checkArgs) {

// blah, blah blah

}

if(useAbs) {

// doodle bug, doodle darn

}

return a+b; // whatevs

}

}

boolean absSet=false;

InternalCal holder=new InternalCal();

public CalBuilder useNormal() {

if(absSet) { throw new IllegalArgumentException(); } // already called

holder.useAbs=false;

absSet=true;

return this;

}

public CalBuilder useAbs() {

if(absSet) { throw new IllegalArgumentException(); } // already called

holder.useAbs=false;

absSet=true;

return this;

}

public CalBuilder checkArguments() {

if(holder.checkArgs) { throw new IllegalArgumentException(); }

holder.checkArgs=true;

return this;

}

public Cal build() {

return holder;

}

}

用法看起来像这样:

Cal cal=new CalBuilder().useAbs().checkArguments().build();

int sum=cal.plus(1,2);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值