我的数据目前结构如下:
class A
{
B[] bArray;
C[] cArray;
A()
{
fillB();
fillC();
}
}
class C
{
X[] x;
insertX() // adds an X element to the x array
{
X newX = new X();
newX.b = findB(searchParam); // returns the matching element from bArray
// the rest of the code adds newX to array x
}
}
class X
{
B b {get;set;} // reference to an element bArray
}
这是当前数据结构的方式。我遇到的问题是我不确定
非常感谢任何帮助。我是新问的有关代码的问题,请耐心等待。
答案 0 :(得分:0)
正在撰写/聚合的对象通常不会了解他们的父母。所以不,我不会说你的结构非常好。
也就是说,在您的示例中,C
不知道它是由A
创建的,因此对bArray
一无所知。根据具体情况,这应该是。
现在,您可以传递对A
的{{1}}引用:
C
再次将class C
{
A parent;
X[] x;
public C(A parent)
{
this.parent = parent;
}
insertX() // adds an X element to the x array
{
X newX = new X();
newX.b = parent.findB(searchParam); // returns the matching element from bArray
// the rest of the code adds newX to array x
}
}
放入findB
。应该去哪里,因为它只知道A
的唯一的。
但是那些紧张的夫妻bArray
与C
。在你的情况下可能没问题,也可能没有。一般而言,应避免像这样的紧耦合。如果没有更好的类名/背景,就不可能说出你的情况会有更好的设计。