在我的公司,一個系統被設計爲有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時,它也會有所幫助,外部開發人員將能夠處理這些錯誤。 –