Java 我是否需要一个更简单的类来搜索复杂的业务实体?
一个智能业务对象实际上可能包含来自多个数据库表的信息。构建业务对象可能需要多个数据库查询。但是,有时您并不需要业务对象的完整信息。我是否需要再创建一个简单的类,只包含业务实体的基本信息 我有一个部门的例子:Java 我是否需要一个更简单的类来搜索复杂的业务实体?,java,performance,business-objects,Java,Performance,Business Objects,一个智能业务对象实际上可能包含来自多个数据库表的信息。构建业务对象可能需要多个数据库查询。但是,有时您并不需要业务对象的完整信息。我是否需要再创建一个简单的类,只包含业务实体的基本信息 我有一个部门的例子: public class Department { String name; String description; //have to query other Table to get headOfDepartment Employee headOfDepa
public class Department {
String name;
String description;
//have to query other Table to get headOfDepartment
Employee headOfDepartment;
//have to query other table to get members
List<Employee> members;
//have to query other table to get subDepartments.
List<Department> subDepartments;
}
2) 使用部门,但不提供完整信息。
这样,“部门”对象可能包含以下数据:
Department{
name:"CCS"
description : "CCS is under CEO office to help CEO handling emails."
headOfDepartment : null
members : null
subDepartments : null
}
我应该选择哪种解决方案?因为成员只能属于一个部门。子部门也可以只属于一个部门——这里有一对多的关系 存储这些实体的键列表是很常见的。如果需要,通过ID获取这些实体。这种方法通常用于大型表,例如 所以我建议有一个实体来存储成员和子部门的密钥
public class Department {
String name;
String description;
//have to query other Table to get headOfDepartment
Employee headOfDepartment;
//have to query other table to get members
List<Employee_Ids> members;
//have to query other table to get subDepartments.
List<Department_Ids> subDepartments;
}
公共课部{
字符串名;
字符串描述;
//必须查询其他表才能获得部门负责人
部门员工负责人;
//必须查询其他表才能获取成员
成员名单;
//必须查询其他表才能获取子部门。
列出附属部门;
}
嗯,当我面对这个问题时,我会根据类的常见用法采取不同的方法。
如果我的应用程序最常用的是最简单的定义类,那么我将我的类一分为二,并从最简单的类扩展最复杂的类。
如果使用最简单的不太常见,那么我只使用复杂的和inicialice作为未使用属性的null。我这样做是为了让我的代码尽可能干净
public class Department {
String name;
String description;
}
public class DepartmentComplex extends Department{
//have to query other Table to get headOfDepartment
Employee headOfDepartment;
//have to query other table to get members
List<Employee> members;
//have to query other table to get subDepartments.
List<Department> subDepartments;
}
公共课部{
字符串名;
字符串描述;
}
公共类部门综合楼扩展部门{
//必须查询其他表才能获得部门负责人
部门员工负责人;
//必须查询其他表才能获取成员
成员名单;
//必须查询其他表才能获取子部门。
列出附属部门;
}
如果使用最简单的不太常见,那么我只使用复杂的和inicialice作为未指定属性的null。在一个类中保留两个null属性不会占用您太多内存。“在一个类中保留两个null属性不会占用您太多内存。”--我关心的null属性不是内存,而是协作。如果另一个开发人员获得了具有null属性的复杂属性,他可能会将null属性视为非数据。然而,数据库中有数据。另一个开发人员应该知道,这个复杂的配置没有完全配置。如果他想获得详细信息,他应该提供复杂的信息。
public class Department {
String name;
String description;
}
public class DepartmentComplex extends Department{
//have to query other Table to get headOfDepartment
Employee headOfDepartment;
//have to query other table to get members
List<Employee> members;
//have to query other table to get subDepartments.
List<Department> subDepartments;
}