gpt4 book ai didi

java - 制作对象转换器的最佳实践

转载 作者:行者123 更新时间:2023-12-02 07:53:13 24 4
gpt4 key购买 nike

我遇到了一个无法自己解决的问题,因此,我请求您的帮助。问题如下:我们必须升级持久层。之前项目使用JDBC访问数据,现在应该使用JPA。这意味着现在数据是在新对象中检索的,但系统可以使用旧对象。因此,我们应该在新旧实体之间编写一些转换器。但问题是,有时为了从旧实体形成新实体,我们需要一些额外的信息。例如:

class OldEntity{
private int id;
// old entity contains only foreign key
private int otherEntityId;
...
}

class NewEntity{
private int id;
// new entity contains object that associated with foreign key
private OtherEntity otherEntity;
...
}

我们想为所有转换器添加一些通用接口(interface),但如果我们从旧实体转换为新实体,首先,我们应该通过其 id 检索“otherEntity”并将其提供给转换器。由于我们有很多具有不同结构的实体,转换器的方法应该接收各种数量的不同参数以形成新的实体。问题是:对于这样的问题有什么好的架构解决方案吗?

最佳答案

这看起来像是 Adapter Pattern 的工作。您的应用程序需要 OldEntities,但持久性现在由 NewEntities 管理,因此需要一个适配器来管理 OldEntities 和 NewEntities 之间的转换。

然后,您需要为域模型中的每个实体构建一个适配器。它们应该看起来像这样:

class NewEntityAdapter extends OldEntity{
private NewEntity newEntity;

//This is an overriden method
public int getOtherEntityId(){
return newEntity.getOtherEntity().getId();

}

关于java - 制作对象转换器的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9986558/

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