【发布时间】:2011-12-03 02:44:31
【问题描述】:
我正在使用内容协商,因此根据请求的标头,我提供 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 中:将 DTO 结果从 BLL 转换为 JSON/XML
2) 在 BLL 中:类似于... getObjectJSON() -> 将 DTO 输入转换并返回为 JSON 格式
3) 在 DTO 中:行为类似于... toJSON() toXML() 类似于 toString()
4) 或仅具有 1 个属性的额外 DTO (json/xml)
5) 别的? ...
*我个人认为 (1) 将逻辑排除在 GUI 之外的原因是错误的,(4) 拥有额外的 DTO (如 WebJsonExampleDTO 和只有一个属性的 WebXmlExampleDTO)似乎有点矫枉过正
【问题讨论】:
标签: design-patterns dto bll content-negotiation