Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
207 views
in Technique[技术] by (71.8m points)

oop - Object Oriented Design - C#

I have a scenario with 4 classes like,

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

Here, SuperGroup will contain a list of Groups, and a Group will contain a list of SubGroups and so on...

Now, I want to design my classes in a way that, Groups can only be created by SuperGroups, and similarly SuperGroups could only create Groups, they cannot create SubGroups directly. Rather when they want a SubGroup, they have to create a Group, then by that object of Group, they could create subGroups.

The same conditions will also apply to < Group,SubGroups > , < SubGroups,MicroGroups > .

How could I achieve that in C#.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Perhaps you want createChild() to be a public method of each class, with the actual child constructors protected or private?

Client code would then call the parent entity to create child entities, rather than being able to construct them directly.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...