我正在寻找有关以下情况的方法的建议。我认为继承结构将有助于减少同步代码。关于创建此模型的理想方法的任何建议或指向类似的示例。
模型如下所示。
有几位爷爷奶奶。 GrandParent可以有几个父母,同样父母可以有几个孩子。似乎有两个"继承"结构,一个用于父/子,另一个用于" IncomeStatements"。
" grandIncomeStatement"和#34; parentIncomeStatement"是其子女的累积损益表以及自己的IncomeStatement。只要对" myIncomeStatement"进行任何更改,他们就必须同步。
现在,我创建了一个"类IS(IncomeStatement)"它具有通用属性,没有任何继承和编写的代码更改 - 每个级别的IncomeStatements。
class GrandParent {
ObjectIS myIncomeStatement;
ObjectIS grandIncomeStatement;
}
class Parent {
ObjectIS myIncomeStatement;
ObjectIS parentIncomeStatement;
}
class Child {
ObjectIS myIncomeStatement;
}
答案 0 :(得分:2)
另一种方法是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;
}
编辑:所以你可能有一个递归的方式来计算familyIncome(你显然会有一个更严格的访问控制,正确的getter / setter)