面向对象设计- 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#中实现呢?
也许您希望createChild()
成为每个类的公共方法,而实际的子构造函数是受保护的还是私有的?
客户端代码将调用父实体来创建子实体,而不是直接构造它们。
将这些类放在它们自己的程序集中,并将您希望防止在外部创建的类的构造函数设置为内部。
请上网查看继承和工厂模式。是的,保持构造函数私有
很简单,从SuperGroup中继承Group,在SuperGroup中创建一个方法,该方法将创建createGroup()
然后从Group继承SUbGroups,同样在Group中添加createSubGroup()方法。等等......我希望你能走得更远