我正在使用内容协商,因此根据请求的标头,我提供了JSON / XML输出。现在我想知道提供此功能的最佳位置是什么。
的信息:
BLL =业务逻辑层
DTO =数据传输对象
DAL =数据访问层
DTO的伪代码示例
class ExampleDTO{
propertie name;
propertie description;
}
BLL的伪代码示例
class ExampleBLL{
GetExample(name) returns ExampleDTO;
GetExamples() returns List<ExampleDTO>;
}
1)在带有BLL对象的GUI中:将来自BLL的DTO结果转换为JSON / XML
2)在BLL中:类似于...... getObjectJSON() - &gt;变换&amp;将DTO输入返回到JSON格式
3)在DTO中:行为如... toJSON()toXML(),如toString()
4)或额外的DTO只有1个属性(json / xml)
5)还有别的吗? ...
*就我个人而言,我认为(1)错误的原因是将逻辑排除在GUI之外,(4)有额外的DTO像WebJsonExampleDTO和只有一个属性的WebXmlExampleDTO似乎有点过分
答案 0 :(得分:1)
我建议采用以下方法,假设您知道要返回的响应。
将响应类型与BLL分开,因为BLL不必对响应类型执行任何操作。
你应该有一个接受两个参数的图层,一个响应类型,第二个图层是要调用的函数。
编写代码而不管响应类型将具有哪些优点,例如,您可以拥有任意数量的响应类型。就像你可以拥有XML,JSON和另一个将是字符串或任何东西。你也可以更好地控制。