我有以下型号:
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.
}
我不明白如何用几个列表,地图和其他类的实例创建一个复杂的对象。我可以用相应的属性类型(String
到StringProperty
,double
到DoubleProperty
等替换现有的字段类型,但是如何处理复杂的类型({{1 }},List<Summary>
,HashMap<String, Vessel>
)?
另一个问题是我是否要支持属性,应该转换现有对象还是需要创建新对象。我可以替换
List<Details>
使用
class IdNamePair
{
protected int id;
protected String name;
}
或者我可以提供一种新类型
class IdNamePair
{
protected IntegerProperty id;
protected StringProperty name;
}
并在处理GUI代码时使用它。这种方法将提供与现有代码(JSON序列化,JDBC)的向后兼容性,但实际上将使模型类的数量增加一倍。什么是首选方式?
更新:
我有一个与PostgreSQL通信并执行各种CRUD操作的程序。数据库中每个表都有相应的类。
我需要开发一个使用现有类的新模块,并且我想通过绑定和属性来实现GUI更新。
我是否需要用对应的属性类型(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);
}
-> String
来替换每种类型的变量,还是最好创建通过属性操作并提供转换方法的类似类(StringProperty
-> class Vessel
)?