我有以下型号:
class IdNamePair
{
protected int id;
protected String name;
public IdNamePair()
{
id = 0;
name = "";
}
}
class Voyage extends IdNamePair
{
//Several string and int variables
}
class Employee extends IdNamePair
{
//Several string and int variables
}
class Vessel extends IdNamePair
{
//Some string and int variables
}
class Details
{
//Several string and int variables
}
class Summary
{
protected Vessel vessel;
protected Employee chief;
protected Employee operator;
protected List<Details> details
}
class Update
{
protected LocalDateTime created;
protected LocalDateTime modified;
List<Summary> summaries;
//Some string and int variable.
}
我无法理解如何创建一个包含多个列表、Map和其他类示例的复杂对象。我可以用相应的属性类型替换现有的字段类型( String
至 StringProperty
, double
至 DoubleProperty
,等等),但如何处理复杂类型( List<Summary>
, HashMap<String, Vessel>
, List<Details>
)?
另一个问题是,如果我想支持属性,我应该转换现有的对象还是需要创建新的对象。我可以替换
class IdNamePair
{
protected int id;
protected String name;
}
具有
class IdNamePair
{
protected IntegerProperty id;
protected StringProperty name;
}
或者我可以提供一个新的类型
class IdNamePairEx
{
protected IntegerProperty id;
protected StringProperty name;
public IdNamePairEx(IdNamePair idNamePair);
///to simple object
public IdNamePair toIdNamePair();
///from simple object
public void fromIdNamePair(IdNamePair idNamePair);
}
并在处理gui代码时使用它。这种方法将提供与现有代码(json序列化,jdbc)的向后兼容性,但实际上会使模型类的数量增加一倍。什么是首选方式?
更新:
我有一个与postgresql通信并执行各种crud操作的程序。数据库中的每个表都有相应的类。我需要开发一个新的模块,将利用现有的类,我想通过绑定和属性实现gui更新。我需要用相应的属性类型替换每种类型的变量吗( String
-> StringProperty
)还是创建类似的类通过属性进行操作并提供转换方法更好( class Vessel
-> class VesselWithPropertiesInteadOfRawTypes
)?
暂无答案!
目前还没有任何答案,快来回答吧!