我會問你關於設計問題的觀點。在公共方法中檢查參數的先決條件
問題基本上如下:一個對象的公共方法應該總是檢查其輸入參數中的前提條件,還是更好地愛對調用者的責任和「相信流量」?
我不是在談論明顯的先決條件,如檢查null以避免空引用異常,但我指的是方法參數中的業務前提條件。這種典型的情況發生在DDD服務中,它對輸入參數執行某種驗證,並返回包含關於該驗證的反饋的對象。
作爲示例,考慮具有公開方法PerformCheck
的類CheckPerson
,其具有Person
類型的單個參數。想象一下,有一條商業規則說這張支票對金髮人士來說沒有意義。
在我看來,這個檢查是重要的,方法名稱應該反映這個規則(如PerformCheckForNonBlondePerson
)。
我應該添加這些檢查還是我應該相信呼叫者?
感謝您的回覆。查看我自己的答案,對您的答案進行擴展評論。祝你有美好的一天 ! –