服务接口设计 - 异常或对象层次结构?

时间:2010-07-13 19:36:47

标签: design-patterns

我目前正在编写一个应用程序,将一些数据发布到HTML表单并解析生成的HTML响应页面。根据用户发送的输入,HTML响应可以包含有效的有效负载数据,也可以请求用户验证他们输入的数据中的错误。

我对如何实现调用HTML服务的界面感到有些困惑。具体来说,我是否使用异常来处理需要进一步用户验证的响应,还是将它们合并到层次结构中并使用基类型作为我的接口返回类型?

有没有最好的方法来实现这样的接口?

1 个答案:

答案 0 :(得分:2)

这实际上取决于你如何看待它的使用。

我不会构建一个使用Exceptions进行“正常”操作的API。如果在您的API中,事先是否需要验证并不明显,我认为直接在API中构建检查,以及提前验证这一点的干净方法将优于异常。

但是,如果事先明确是否需要验证,我会尝试将其构建到API中(即:使方法调用需要传递验证信息)。这可以防止在大多数情况下需要例外。然后,您可以在必要时提出异常。

一般来说,我强烈建议将异常视为“例外”,而不是流量控制的机制。用户不应拥有来处理异常,以便有效地使用您的API。