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

时间:2014-03-05 16:04:44

标签: php oop design-patterns solid-principles

我有大约10个Web服务调用,我创建了单个静态类,我将所有调用放在同一个类中

class WebserviceCalls {
  public static function getReportDetails($reportId) {}
  public static function getUserSession($userId) {}
  ....................................
}

然后我将有一个代理类WebServiceCallProxy,它在对WebServiceCalls类进行实际调用之前处理所有缓存。

通过这种设计,随着我的进展,我有了新的需求,需要新的Web服务调用,我只需将新调用添加到WebServiceCalls类。

通过所有这些设计,随着它的发展,它对代码气味的呼唤,它违反了所有的OOP Solid原则,类也没有凝聚力。我知道必须有更好的方法,可能是一些预先定义的设计模式,它们处理这类问题或分解更简单的对象中的每个方法,并将整个WebServiceClass视为一个不同的组件。

1 个答案:

答案 0 :(得分:-1)

如果您正在使用MVC架构或类似的东西,最好将您的WebServiveCalls拆分并将方法放在模型层中。

在您的getDetails()课程中放置Report个功能,在getSession()课程中放置User

在这些函数中准备检索nessesary数据所需的请求参数。然后在request类中调用WebService函数,返回答案。

在方法中处理响应。

如果您必须添加新呼叫,则可以轻松添加新模型或扩展现有模型。无需修改您的WebService课程。