好的,所以我试图对所有这些模式有所了解。
好的,所以我在 CodeIgniter 中编写了一个应用程序,它需要能够使用 SOAP(可能是 XML、逗号分隔等)将有关汽车和客户的数据发送到不同类型的公司。
但他们都需要同样的东西。
我想让它尽可能动态,并确保它易于编写测试。
因此,该服务应该采取一些措施:
- 处理程序
- 申请人 [1-2]
- 参数
- 目的
我开始创建不同的课程
Gr8Exp NordCar SwePerf
每个实现接口iServiceRequest
interface iServiceRequest{
/**
* Send the request to the company server.
*/
function sendRequest();
/**
* Saves the response into the database.
*/
function saveResponse();
/**
* Prepares the request to the company, setting info from form and shit.
*/
function prepareRequest();
/**
* Soap, XML, CSV, JSON
* @param type $method
*/
function setRequestHandler(iServiceRequestHandler $handler);
}
然后他们需要根据我放入的处理程序来构建 Soap、XML、CSV、JSON 请求。
在那些需要被验证的人之后(不是所有人都这样做了),我使用了:
interface iAdaptServiceRequest{
/**
* Structure the array information and put it into an object structure in the right place.
*/
function structure(array $info);
/**
* Make all the checks for the function
*/
function validateInfo();
}
但是我被卡住了,当我只使用 SOAP 请求时它工作得非常好;但现在。由于我需要以不同的方式格式化它们,因此对每种类型的请求或我不知道该怎么做的公司使用不同的处理程序。我可以将它们放在不同的文件夹中并在不同的文件夹中重新创建类。但这不是一个好习惯,因为我一直在重复代码。
最后我想运行一些这样的链接:
$result = $m->prepareRequest()->sendRequest()->saveResponse();
有什么建议么??