读书人

api设计时返回值的有关问题

发布时间: 2012-12-24 10:43:13 作者: rapoo

api设计时,返回值的问题

常见的两种方式的接口,你会选择哪一种?

(1)

public boolean? updateXX(MyPojo pojo) ;

public boolean send(Message msg);

?

(2)

public void updateXX(MyPojo pojo) throw MyException?;

public void send(Message msg) throw MyException?;

?

(1)中的接口,返回一个boolean,使用者可以有选择地根据返回值进行不同的处理。但在使用过程中。大家通常会忽略其返回值,增加了风险,可能会造成操作失败了,却无法察觉。

?

(2)中接口语义比较明确,失败就抛异常出去,并且异常里通常会带上很多的信息。

?

在契约编程里,提到要区分查询与命令,如果是命令,通常是void的,有问题直接抛异常出去。

?

个人认为,大多数情况下,选择(2)接口的方式比较靠谱。

读书人网 >编程

热点推荐