【发布时间】:2013-12-08 02:53:22
【问题描述】:
我正在为我没有源代码访问权限的 REST 服务实现多个 REST 客户端包装器(Java、C#、Objective-C 和 Python)。在所有这些中,我都遇到了建模问题,所以你当然可以假设我的缺陷在于 OOP,而不是语言语法或其他东西。我想知道也许有人可以帮助我修复这个缺陷或找出 REST 服务是否是问题所在,希望这个主题可以帮助其他人改进他们的 OOP 建模。
WebService 将始终返回具有以下结构的 JSON:
{
"meta": {
"code": 200,
"message": "OK"
},
"result": [
{
...
},
{
...
},
...
]
}
}
问题是:“元”将始终具有相同的模型,“结果”将始终是对象列表,但这些对象会根据我们访问的端点而改变。所以我有多个类,每个类对应一个端点,结果总是最终成为这些类之一的列表。所以我想了多种解决方法,但没有一个是我真正喜欢的。除了以下方法还有其他选择吗?谢谢。
方法一
带有代码和消息字段的元类,带有元字段和结果字段为 JSONData 的 ServiceResponse 类
每个特定的类都有一个以 JSONData 作为参数的构造函数,在创建时解析。
问题
JSONData没有被封装,因为它必须一直被处理,并且由于多次解析相同的JSONData,性能很差,因为ServiceResponse不保存解析的对象。
方法二
为我拥有的每个不同的班级制作一个 ModelResponse。例如。 ProductsResponse 带有元和产品列表,VenuesResponse 带有元和产品列表等。
问题
代码重用差。
【问题讨论】: