我正在使用内容协商,因此根据请求的标头,我提供 JSON/XML 输出。现在我想知道提供此功能的最佳位置是什么。
Info: 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) 拥有像 WebJsonExampleDTO 和只有一个属性的 WebXmlExampleDTO 这样的额外 DTO 似乎有点矫枉过正