发布/订阅模式的正确类/接口名称是什么?

时间:2011-11-17 12:12:18

标签: design-patterns coding-style naming-conventions

我有这个界面让别人听某个事件

interface XXX
{
    void subscribe( string event, func callback );
    void unsubscribe( string event, func callback );
}

此外,我还有另一个界面,它提供了一种“发布”事件的方法。

interface YYY
{
    void publish( string event, params[] params );
}

然后,我有一个实现两个接口的类。它充当“广播电台”,人们可以订阅某些活动并在其上发布内容,以便每个人都可以参与活动

class ZZZ: XXX, YYY
{

    void subscribe( string event, func callback )...
    void unsubscribe( string event, func callback )...
    void publish( string event, params[] params )...
}

我的问题是我无法弄清楚这些类/接口的正确名称是什么。目前我正在使用IEventBroadcaster进行订阅/取消订阅,使用IEventPublisher作为发布部分,使用BroadcastStation作为实现的类。

我想知道这种情况是否存在某种标准命名。

提前致谢。

2 个答案:

答案 0 :(得分:1)

IPublisher和ISubscriber有什么问题?或者也许如果你想要“光滑”,能力指示接口,IPublishEvents和ISubscribeToEvents?

对于实现此接口的类,名称应描述该类的用途 - 假设该类的目的不仅仅是发布和订阅事件。

答案 1 :(得分:1)

我相信你正在寻找观察者design patternenter image description here

所以你可以使用classig register / unregister / notify names。