我有一个通知类,它的界面类似于以下(有一些语法问题):
template<typename ...T>
Notification
{
public:
void addObserver(std::function<void (T...)> o);
void notify(T...);
};
然后有一个作为通知中心的主机类:
class NotificationCenter
{
public:
Notification<int, int> mPointChangedNotification;
};
最后,有一个实际的观察者来监听通知:
class Listener
{
void someFunction(int, int)
{
}
void SomeMethod(NotificationCenter &m)
{
m.mPointChangedNotification.addObserver(someFunction);
}
};
到目前为止,一切都很好。但问题是即使实际观察者也可以看到 notify 函数,而它应该只能被 NotificationCenter 类访问。如果有人可以帮助解决这个设计问题,那将非常有帮助。
提前致谢。