API设计总结

最近在设计一个服务的API,下面是对API如何易用的一些思考。

 

比如我们的模块中需要依赖StageStatSupport;

 

@Inject
private StageStatSupport stageStatSupport;
				

 

 

首先要避免参数过多的情况,比如这样使用肯定是不行的。

stageStatSupport.log(bizGroup, collectingPoint,"gather",getActionName(),"error",new String[]{"tag1","tag2"},1)

 

重构封装成JavaBean,草!怎么这么多行代码

 

StageStat stat = new StageStat();
stat.setBizGroup(bizGroup);
stat.setCollectPoint(collectingPoint);
stat.setActionType(StageStat.PERSISTENCE);
stat.setAction(type);
stat.setMetric("count");
stat.setSum(processedCount);
stageStatSupport.log(stat);

 

 

最后采用fluent模式,一行搞定

stageStatSupport.statAction(bizGroup, collectingPoint,getActionName(),"error").count();

总结:按照业务职责分解,把需要由外部用户创建的JavaBean封装在内部来创建能降低代码的复杂度保持简洁

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值