我使用Repository模式與規範模式組合與服務網絡(我喜歡在DAO庫)進行交互:因爲這表明鏈接:http://thinkinginobjects.com/2012/08/26/dont-use-dao-use-repository/。驗證值混亂
用戶界面與控制器,控制器交互與服務交互,服務與存儲庫交互以及爲服務web進行CRUD操作的規範,您可以說這是應用程序的全局體系結構,一種基礎架構。
我很困惑,網絡服務的端點接受值,但它不接受負數,並且我聲明它爲int
,並且在Java中沒有unsigned int
,所以現在是很好的檢查在規範發出請求之前(因爲我已經知道它會失敗),或者僅在內部服務中,每個規範中的值的有效性!我認爲使每個規範檢查它的價值更好,因爲我要求每個服務使用這個規範來處理這種檢查,也就是說我可以擺脫代碼重複,如果每個規範都沒有檢查,並讓該服務爲此執行該操作,該檢查將在每個服務中重複使用,這對我來說是一種糟糕的代碼重用。
這是一個很好的放置驗證內部存儲庫,如果測試faillure會引發異常,該服務將無法捕捉它,並讓控制器捕捉它來通知用戶他所做的。
我是小有一點困惑SRP(單一職責原則),這樣做,確實每個指標符合SRP?!!!! (我一直對SRP有問題,我無法確切知道系統中每個班級的職責)。
這是Android的應用程序,並且我們有intetion把它也可以作爲Web應用程序(所以,我想這樣做以正確的方式,最大限度地提高代碼重用)。
如果我做它falsy方式,如果there'e另一種更好的方式或任何東西,現在請讓我吧:)
非常感謝你,以非常好的方式解釋,所以很有用,現在一切都很清楚,我將書籤作爲參考使用它的答案,再次感謝你:) –