gpt4 book ai didi

java - 转换对象的模式

转载 作者:行者123 更新时间:2023-11-29 09:15:43 26 4
gpt4 key购买 nike

我正在寻找一些最佳实践/模式来将对象从一个对象转换为另一个对象。我使用 DAO 从数据库加载数据以创建我的域对象。在我的应用程序中,我需要转换成一个不同的对象,作为另一个模块的输入。例如,客户是包含订单列表的域对象。我需要将其转换为对象 customerorder。

Public class Customer {
String customerid
List<Order> orders
}

Public class Order {
Integer id
Date orderDate
}

/** Transformed objects **/
public class CustomerOrder {
string customerid
Integer orderid
}

目前我有一个接口(interface) CustomerDTO,它有一个返回 CustomerOrder 对象列表的方法和一个实现该接口(interface)的具体类

Public interface CustomerDTO {
List<CustomerOrder> getData(Date date)
}

Public class CustomerDTOImpl implements CustomerDTO {
Private Customer customer
Public CustomerDTOImpl(Customer customer) {
this.customer = customer
}

Public List<CustomerOrder> getData(Date date) {
..... Code to loop through orders and create and return a list with matching order dates
}
}

对于简单的转换,我不需要 DTO 类,但我的转换非常复杂,我想为不同的对象保持转换逻辑分离。最初我有一个转换器类,它只是循环遍历所有对象并创建转换后的对象,但我认为这不是一个好的设计,也没有想到这个 DTO。但我相信有更好的方法来做到这一点。

我还需要能够在多个对象上使用 DTO 模式。在这个客户中只是一个这样的对象?我有 20 个类似的不同对象,我需要将它们转换成它们各自的转换对象。

任何关于最佳实践和模式的想法都会非常有用。还有什么泛型我可以用来更好地扩展它们。

谢谢贾维德

最佳答案

您需要让该对象扩展或实现另一个对象,以便您可以将它们转换为不同种类的对象。我建议研究多态性来做到这一点。名字听着吓人,其实没什么大不了

关于java - 转换对象的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9543373/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com