我定义了一个Event类:
Event
并且所有以下类都继承自Event:
AEvent BEvent CEvent DEvent
现在,通过我从所有这些活动类中收集的信息,我将制作一个图表。使用AEvent和BEvent,我将为该图表生成点,而使用CEvent和DEvent,我将绘制图表的某些区域。
现在,我应该如何在班级层次结构中发出信号?
感谢。
答案 0 :(得分:2)
我不认为一个事件与绘图有任何关系。所以我倾向于使用子类PointEventPainter和RegionEventPainter创建类似EventPainter的东西。其他实体将负责为给定事件获取适当的EventPainter。
答案 1 :(得分:1)
没有足够的信息可以确定,但听起来你的第一个选择是最好的。
由于AEvent和BEvent在本质上都是PointEvent子类,因此有一个PointEvent类是有意义的。 RegionEvent也是如此。
这将有助于您整合共享代码,并避免不必要地重复代码。
答案 2 :(得分:1)
这实际上取决于您的具体情况。 AEvent,BEvent,RegionEvent,PointEvent有点模糊。 ; - )
在大多数情况下,选项1似乎没问题。然而,它听起来有点像接口IDrawsRegion
或IDrawsPoint
在这里会很好。另外我觉得这里有一些策略模式,你可能想看一下。