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