我有大约10个Web服务调用,我创建了单个静态类,我将所有调用放在同一个类中
class WebserviceCalls {
public static function getReportDetails($reportId) {}
public static function getUserSession($userId) {}
....................................
}
然后我将有一个代理类WebServiceCallProxy
,它在对WebServiceCalls
类进行实际调用之前处理所有缓存。
通过这种设计,随着我的进展,我有了新的需求,需要新的Web服务调用,我只需将新调用添加到WebServiceCalls
类。
通过所有这些设计,随着它的发展,它对代码气味的呼唤,它违反了所有的OOP Solid原则,类也没有凝聚力。我知道必须有更好的方法,可能是一些预先定义的设计模式,它们处理这类问题或分解更简单的对象中的每个方法,并将整个WebServiceClass视为一个不同的组件。
答案 0 :(得分:-1)
如果您正在使用MVC架构或类似的东西,最好将您的WebServiveCalls
拆分并将方法放在模型层中。
在您的getDetails()
课程中放置Report
个功能,在getSession()
课程中放置User
。
在这些函数中准备检索nessesary数据所需的请求参数。然后在request
类中调用WebService
函数,返回答案。
在方法中处理响应。
如果您必须添加新呼叫,则可以轻松添加新模型或扩展现有模型。无需修改您的WebService
课程。