各位道友,进来讨论个接口设计问题!

10-07-08 xmuzyu
目前公司关于接口的设计主要有两种形式:

public interface BussinessInterface{

||第一种方式

//此种设计是通过返回Result对象来实现的,客户端通过查看Result来判断

当前的业务操作是否成功,一般会在Result类里面包括resultCode(表示返回

的错误代码)和resultMessage(表示返回的错误信息)

public Result<BussinessModel> bussinessOperation(...);

||第二种方式

//另外一种方式是通过异常的形式,客户端通过捕获异常来了解到接口调用是否成功,

以及失败的原因等信息

public BussinessModel bussinessOperation(....)throws BussinessException1,BussinessException2;

}

以上两种方式各有各的好处:

第一种方式:

优点:因为异常的传递是会有一定的消耗的,因此第一种方式能使得系统节省一定的消耗。

缺点:接口不够明确,客户端需要根据结果码来判断业务操作是否成功。

第二种方式:

优点:接口设计明确,客户端可以很清楚的指导调用此接口可能会出现什么样子的问题

缺点:异常的传递需要一定的消耗

在远程调用的时候,需要客户端也要保持一份关于业务异常的jar,同时也会带来异常序列化开销。

我起个头,大家说说自己的看法。各抒己见。

    

5
zava
2010-07-08 21:59
我比较倾向第二种,抛的就是业务异常,简单明了,以一些性能为代价,值得。

Antinomy
2010-07-09 09:25
视客户对性能要求而定,客户要求性能高的就采用第一种,反之选第2.

lostalien
2010-07-09 17:10
还是返回状态码好,在文档里写清楚就是了。

zava
2010-07-09 19:41
关于exception的性能问题,可以参照这个文章: http://www.blogjava.net/stone2083/archive/2010/07/09/325649.html

猜你喜欢
4Go 1 2 3 4 下一页