0

我有类似以下的情况:

class EventHandler { ... }; 
class Event {void Accept(EventHandler&) { ... }};

class SpecialEventHandler : public EventHandler { ... };
class SpecialEvent : public Event {void Accept(SpecialEventHandler&) { ... }};

有些事件是 的子类型,Event有些是 的子类型SpecialEvent。这些事件被添加到Events 队列中,然后我需要使用SpecialEventHandler.

问题是处理特殊事件,因为唯一Accept可以调用的方法是其中的一个,Event因此只能EventHandler传入一个。我有一个使用双访问者模式的解决方案,但这既笨重又令人困惑。

  • 这种情况有模式吗?
  • 有没有更好的设计方法?
4

0 回答 0