为 Web 服务调用设计类的最佳方式



我有大约 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类。

最新更新