【发布时间】:2013-04-11 10:36:00
【问题描述】:
好的,所以我正在尝试理解所有这些模式。
好的,所以我正在 CodeIgniter 中编写一个应用程序,它需要能够使用 SOAP(可能是 XML、逗号分隔等)向不同类型的公司发送有关汽车和客户的数据。
但他们都需要同样的东西。
我想让它尽可能动态化,并确保它易于编写测试。
所以服务应该采取一些措施:
- 处理程序
- 申请者 [1-2]
- 参数
- 对象
我开始创建不同的类
Gr8Exp 北车 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();
有什么建议吗??
【问题讨论】:
-
使用类似 ->setType('json') ..etc 然后让您的请求处理程序使用它来构造数据。
-
您必须规范化您的数据,以便轻松输出您想要的任何结构,然后根据请求的类型将数据传递给将格式化数据并返回它的处理程序,它会比复制文件要容易得多 + 它将允许您在未来添加更多内容。
标签: php codeigniter design-patterns