我的场景:考虑两个类class SubGroup
,和 class Group
。我不希望其他类在SubGroup's
没有 的情况下创建对象Group
,因为SubGroups
没有Group
. 但是,
Group
可以没有任何SubGroup
. 此外,Group
可以包含多个SubGroup's
.
class SubGroup{
private SubGroup(int arg){
}
}
class Group{
List<SubGroup> list;
Group(int param){
list = new List<SubGroup>();
}
SubGroup createChild(int args){
return new SubGroup(int args); // I need to access SubGroups constructor?? (without using inheritance).
}
}
class C{
Group b = new Group(param);
SubGroup a = b.createChild(args); // since constructor is not visible here. bcz, SubGroup will not exist without Group.
}
我已经尝试过:
我可以让 Group 从 SubGroup 继承并使 SubGroup 构造函数成为受保护的,但这说明了is-a
关系,即每个 Group 都是一个 SubGroup。但实际上并非如此。
此外,我想要一个 arg 来创建一个子组,但在创建组期间我没有子组的参数,因此我不能使用继承。
内部类:内部类无济于事,因为我有SuperGroup,SubGroup,MicroGroup
很多层。实际上这是一个金融项目,我有Account,AccountHead,SubGroup,Group
等等。所以也可能会创建内层。这会降低可读性。
我如何在 C# 中实现?