各位道友,进来讨论个接口设计问题!
目前公司关于接口的设计主要有两种形式:
public interface BussinessInterface{
||第一种方式
//此种设计是通过返回Result对象来实现的,客户端通过查看Result来判断
当前的业务操作是否成功,一般会在Result类里面包括resultCode(表示返回
的错误代码)和resultMessage(表示返回的错误信息)
public Result<BussinessModel> bussinessOperation(...);
||第二种方式
//另外一种方式是通过异常的形式,客户端通过捕获异常来了解到接口调用是否成功,
以及失败的原因等信息
public BussinessModel bussinessOperation(....)throws BussinessException1,BussinessException2;
}
以上两种方式各有各的好处:
第一种方式:
优点:因为异常的传递是会有一定的消耗的,因此第一种方式能使得系统节省一定的消耗。
缺点:接口不够明确,客户端需要根据结果码来判断业务操作是否成功。
第二种方式:
优点:接口设计明确,客户端可以很清楚的指导调用此接口可能会出现什么样子的问题
缺点:异常的传递需要一定的消耗
在远程调用的时候,需要客户端也要保持一份关于业务异常的jar,同时也会带来异常序列化开销。
我起个头,大家说说自己的看法。各抒己见。