面向对象设计- c#

本文关键字:面向对象设计 | 更新日期: 2023-09-27 18:12:41

我有一个场景,有4个类,如

class SuperGroup,
class Group,
class SubGroup,
class MicroGroup,

这里,SuperGroup将包含Group的列表,而Group将包含subgroup的列表,等等…

现在,我想设计我的类,组只能由SuperGroups创建,同样SuperGroups也只能创建group,不能直接创建subgroup。相反,当他们想要一个SubGroup时,他们必须创建一个Group,然后通过Group的对象,他们可以创建子组。

同样的条件也适用于<Group,SubGroups>, <SubGroups,MicroGroups> .

我怎么能在c#中实现呢?

面向对象设计- c#

也许您希望createChild()成为每个类的公共方法,而实际的子构造函数是受保护的还是私有的?

客户端代码将调用父实体来创建子实体,而不是直接构造它们。

将这些类放在它们自己的程序集中,并将您希望防止在外部创建的类的构造函数设置为内部。

请上网查看继承和工厂模式。是的,保持构造函数私有

很简单,从SuperGroup中继承Group,在SuperGroup中创建一个方法,该方法将创建createGroup()

然后从Group继承SUbGroups,同样在Group中添加createSubGroup()方法。等等......我希望你能走得更远