在Java中创建继承/组合结构
我正在寻找有关以下情况的建议。我认为继承结构将有助于减少同步代码。关于创建此模型的理想方法的任何建议,或者给我举一个类似的例子 模型如下所示 有好几位祖父母。祖父母可以有几个父母,同样地,父母也可以有几个孩子。似乎有两个“继承”结构,一个用于父/子,另一个用于“非合并陈述” “总损益表”和“母公司损益表”是其子公司及其自身损益表的累计损益表。每当“我的收入计量表”发生任何变化时,它们必须同步 现在,我已经创建了一个“类IS(IncomeStatement)”,它具有公共属性,没有任何继承,并且围绕每个级别的IncomeStatement的更改编写了代码在Java中创建继承/组合结构,java,oop,Java,Oop,我正在寻找有关以下情况的建议。我认为继承结构将有助于减少同步代码。关于创建此模型的理想方法的任何建议,或者给我举一个类似的例子 模型如下所示 有好几位祖父母。祖父母可以有几个父母,同样地,父母也可以有几个孩子。似乎有两个“继承”结构,一个用于父/子,另一个用于“非合并陈述” “总损益表”和“母公司损益表”是其子公司及其自身损益表的累计损益表。每当“我的收入计量表”发生任何变化时,它们必须同步 现在,我已经创建了一个“类IS(IncomeStatement)”,它具有公共属性,没有任何继承,并且围
class GrandParent {
ObjectIS myIncomeStatement;
ObjectIS grandIncomeStatement;
}
class Parent {
ObjectIS myIncomeStatement;
ObjectIS parentIncomeStatement;
}
class Child {
ObjectIS myIncomeStatement;
}
另一种方法是让
人
和孩子列表
public class Person {
List<Person> children;
ObjectIS myIncomeStatement;
ObjectIS familyIncomeStatement;
public ObjectIS getFamilyIncomeStatement() {
ObjectIS is = new ObjectIS();
for(Person p: children) {
is.income += p.familyIncomeStatement.income;
}
is.income += this.myIncomeStatement.income;
return is;
}
}
// sample objectIS class
public class ObjectIS {
private int income;
}
公共类人物{
列出儿童名单;
目的:计量指标;
目的家庭责任陈述;
公共目标GetFamilyComeStatement(){
ObjectIS is=新ObjectIS();
个人(p:儿童){
is.income+=p.familyIncomeStatement.income;
}
is.income+=此.myincomestation.income;
回报是;
}
}
//示例对象类
公共类目标{
私人收入;
}
编辑:因此,您可能有一种递归的方法来计算familyIncome(显然,您将有一个更严格的访问控制,适当的getter/setter)另一种方法是让
Person
和它的孩子列表
public class Person {
List<Person> children;
ObjectIS myIncomeStatement;
ObjectIS familyIncomeStatement;
public ObjectIS getFamilyIncomeStatement() {
ObjectIS is = new ObjectIS();
for(Person p: children) {
is.income += p.familyIncomeStatement.income;
}
is.income += this.myIncomeStatement.income;
return is;
}
}
// sample objectIS class
public class ObjectIS {
private int income;
}
公共类人物{
列出儿童名单;
目的:计量指标;
目的家庭责任陈述;
公共目标GetFamilyComeStatement(){
ObjectIS is=新ObjectIS();
个人(p:儿童){
is.income+=p.familyIncomeStatement.income;
}
is.income+=此.myincomestation.income;
回报是;
}
}
//示例对象类
公共类目标{
私人收入;
}
编辑:因此您可能有一种递归方法来计算familyIncome(显然,您将有一个更严格的访问控制,适当的getter/setter)而不是使用ObjectIs,您可以始终使用多态性,然后晚些时候使用操作符的
实例。您可以检查不需要的btw,因为动态绑定将调用右函数。Java中没有这样的“类”声明,它应该是小写的“类…”@JorgeCampos。编辑问题。你真的需要为祖父母、父母和孩子分别上课吗?这很不自然——毕竟,在自然语言中,祖父母也是父母和孩子。谢谢@JohnBollinger。实际上,我已经在模型中这样做了。我试图找到一种更好的方法来映射累积和个人损益表,这样我就可以用递归逻辑将它们保存在sych中。而不是使用ObjectIs,您可以始终使用多态性,然后晚些时候使用
操作符的实例。您可以检查不需要的btw,因为动态绑定将调用右函数。Java中没有这样的“类”声明,它应该是小写的“类…”@JorgeCampos。编辑问题。你真的需要为祖父母、父母和孩子分别上课吗?这很不自然——毕竟,在自然语言中,祖父母也是父母和孩子。谢谢@JohnBollinger。实际上,我已经在模型中这样做了。我正试图找到一种更好的方法来映射累积和个人损益表,这样我就可以用递归逻辑将它们保存在sych中。谢谢@ajc。这会奏效的。有没有一种方法可以对保持关联的家庭或累积损益表进行建模(随着子公司损益表及其自身损益表的变化。若要,请编写一个递归逻辑来同步损益表。谢谢@ajc。这将起作用。是否有方法对保持关联的家庭或累积损益表进行建模(随着子损益表及其自身损益表的变化。若要,请编写递归逻辑以同步损益表。