我有一种情况,我想将对象转换为服务请求对象类型以调用服务。
我有一个像这样的数据对象:
class Data {
int val;
...
}
我想将此对象转换为服务请求对象,比如说DataRequest。我在考虑以下两个选项:
1.在Data类本身中具有一个
toDataRequest()
方法。class Data {
int val;
...
public DataRequest toDataRequest() {
..
}
}
2.拥有一个单独的类
DataAdapter
,并具有Adapt方法,该方法返回DataRequest
对象。class DataAdapter {
public DataRequest adapt(Data data) {
...
}
}
我倾向于1级,因为它有助于减少课程数量。我很想听听,这个用例的一般建议是什么?
最佳答案
这取决于您的体系结构。通常,您有一个服务层和至少一个持久层。服务层在持久层之上,通常,体系结构仅允许从较高层到较低层的访问。例如。
+----------------------------+
| service layer | // request object is placed here
+----------------------------+
| depends on
V
+----------------------------+
| persistence layer | // Data object is placed here
+----------------------------+
因此,当您的
Data
对象具有方法public DataRequest toDataRequest()
时,它便具有对DataRequest
的依赖关系,这意味着较低的层与较高的层具有依赖关系。这通常不是您想要的。因此,如果使用
DataAdapter
(也称为DataMapper)并将其放置在服务层中,则您将尊重上面显示的体系结构。您也可以在
DataRequest
中实现映射逻辑。