870920 Menu

JUCE类库小tips:Listener应该写成嵌套类吗?

是的,应该写到Broadcaster类中,使之成为嵌套类。

JUCE类库的消息机制采用回调函数的方式,设计模式则是观察者模式(发布-订阅)。当一个发布类的对象发布消息后,该消息将被订阅类的对象所接收(捕获、侦测)。订阅类通常为抽象基类,其纯虚函数由派生类实现(进行消息捕获后的某些处理)。这个思路是一个重要的编程技巧,用途非常广泛。

旧版本的MSVC对嵌套类的支持不够好,因此,早期的C++程序员不得不将一些本该嵌套的Listener类写成“独立类”。目前,所有的编译器已不存在这个问题。为避免与命名空间(namespace)发生冲突,并严格遵循设计原则中的迪米特法则,建议将自定义的Listener类写到广播类中,使之成为后者的嵌套类。