我有大約10 Web服務調用和我做了,我已經把所有的電話在同一類最好的方法調用
class WebserviceCalls {
public static function getReportDetails($reportId) {}
public static function getUserSession($userId) {}
....................................
}
然後單靜態類,我將有一個代理在實際調用WebServiceCalls
類之前處理所有緩存的類WebServiceCallProxy
。
有了這個設計,隨着我的發展,我有新的要求需要新的Web服務調用,我只需將新調用添加到WebServiceCalls
類。由於所有這些設計,隨着它的發展,它呼籲代碼味道,它違反了所有OOP固體原則,類也不是凝聚力。我知道必須有更好的方法,可能是一些預定義的設計模式來處理這類問題,或者在簡單對象中分解每個方法,並將整個WebServiceClass作爲一個不同的組件處理。
有意義,但可以說如果我已經有用戶模型,並且我將getSession的哪個數據源(屬性或參數)添加爲Web服務,而用戶模型中的其他方法的數據源是數據庫,那麼如何構造? –
將您的'WebService'和'Database'作爲服務處理。它們應該只在您的應用程序生命週期中存在一次。你可以使用singlton模式來創建它們的一個實例。在你的User模型中,getSession調用WebService :: getInstance() - > request(params)',並且對於DB查詢使用'Database :: getInstance() - >查詢(查詢)'更好的是某種'ServiceManager'來獲取服務實例。 –
MVC中沒有「模型」。模型是一個圖層。請停止建議人們的模式,你不明白。另外,這對OP的問題沒有任何幫助。而且,作爲頂級櫻桃:** SINGLETONS是一個反模式!! ** –