在我的公司,一个系统被设计为有3层。 Layer1负责业务逻辑处理。 Layer3是呼叫后端系统。 Layer2位于两层之间,因此layer1不需要了解后端系统。为了传递来自第3层的信息,第2层需要定义接口到第1层。方法返回类型
例如,层1要检查是否从用户PIN码是正确的。它调用layer2的checkPin()方法,然后layer2调用相关的后端系统。 checkPin()结果可能是:correctPin,inCorrectPin和internalError。目前,我们定义了返回类型'int'。所以如果layer2返回0,这意味着correctPin;如果返回1,则表示inCorrectPin;如果返回9,则意味着internalError。
它的工作原理。不过,我对这种方法感到有些不安。有没有更好的方法来做到这一点?例如定义一个枚举CheckPinResult {CORRECT_PIN,INCORRECT_PIN,INTERNAL_ERROR},并返回CheckPinResult类型?
感谢, 萨拉
在每个图层上使用例外。如果一个图层失败,您会捕获该异常。这样,你就知道哪一层失败了。这是一个建议,所以我没有把它作为答案。 –
是的,我明白你的观点。我们目前正在做的是在发生内部错误时记录错误。如果出现异常,我们将其捕获并记录在layer1中。 Layer2和Layer3将其升级到更高层。 – sarahTheButterFly
我认为Elite所说的是从每一层创建一个自定义异常。这些是商业例外,这是我们所做的。当你将图层用作API时,它也会有所帮助,外部开发人员将能够处理这些错误。 –