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封装在内部来创建能降低代码的复杂度保持简洁

猜你喜欢

转载自san-yun.iteye.com/blog/2145085
今日推荐