gpt4 book ai didi

java - 用于访问具有不同字段名称的相似对象的设计模式

转载 作者:太空宇宙 更新时间:2023-11-04 15:13:40 26 4
gpt4 key购买 nike

哪种设计模式(如果有)最适合这种情况。

public class PersonFromDB1 {
private String firstName;
private String lastName;
private String Car;
}

public class PersonFromDB2 {
private String first_name;
private String last_name;
private String boat;
}

在这两种人类型中,我想要处理的唯一数据是名字和姓氏,无论字段名称在不同数据库中的名称如何。 firstName 和first_name 代表相同的人/客户的名字,lastName 和last-name 也是如此。在我的示例中,汽车和船只领域完全不相关,因此应该被忽略。

使用多态性或适配器模式(?),我想创建一个对象列表,其中包括同一类型下的 DB1 和 DB2 中的人员 - PersonInOurDB。

最后,我的目标是能够单独在 myClass 上调用 GSON 序列化/反序列化。

public class PersonInOurDB {
private String firstname;
private String lastname;
}

最佳答案

您真正需要的只是基于类型的简单选择。这可以被视为构建器模式,因为它只是初始化 myClass 的新实例。

注意,这是粗略的伪代码。

FunctionName(SomeType instance)
{
string aPostfix = "_1";
string bPostfix = "_2";

string selectedPostFix;

// This is your strategy selector
switch(typeof(SomeType.Name)
{
case "TypeA":
selectedPostFix = aPostFix;
case "TypeB":
selectedPostFix = bPostFix;
}

return new myClass()
{
A = instance.GetProperty("A" + selectedPostfix).Value,
B = instance.GetProperty("B" + selectedPostfix).Value,
...

}
}

关于java - 用于访问具有不同字段名称的相似对象的设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21064740/

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