重要的接口和实现(Helper 类)

From Apache OpenOffice Wiki
Jump to: navigation, search



UNO 对象实现一组 UNO 接口,其中一些接口是要求时才会实现。下面的接口属于办公软件程序目录中称为 cli_types.dll 的汇编程序:

com.sun.star.lang.XTypeProvider (建议用于所有 UNO 对象)

com.sun.star.uno.XWeak (建议用于所有 UNO 对象)

com.sun.star.lang.XComponent (可选)

com.sun.star.beans.XPropertySet (可选,对于有关已定义服务属性的服务实现是必需的)


为了使对象开发容易一些,语言绑定为以上大多数接口提供了 helper 实现。helper 类属于 uno.util 名称空间,且包含在称为 cli_ure.dll 的汇编程序中。请注意:缺少一个类似于 C++ 或 Java 中实现侦听器容器的 helper。它存在的主要原因是确保自动通知事件侦听器(请参阅 com.sun.star.lang.XComponentcom.sun.star.lang.XEventListener)。由于使用语言功能很容易实现事件通知,因此 CLI 语言为事件(委托)提供简单机制,使得 helper 类在此特定情况下显得有些多余。


uno.util.WeakBase

此类实现 XTypeProviderXWeak 接口。XWeak 用于实现 UNO 弱引用机制,如果不使用 System.WeakReference 看来可能很奇怪。切记:其他不支持弱引用的语言环境中也包含 UNO 对象。这时就将弱引用作为 UNO 概念实现。当然,就像每个组件或应用程序都可以使用 System.WeakReference 一样,只要 helper 实现不用于对 UNO 接口的调用,helper 实现就使用 System.WeakReference。此外,编译程序将无法正确编译实现。


uno.util.WeakComponentBase

此类是由 uno.util.WeakBase 派生的,并且实现 XComponent 接口。如果组件需要执行特殊的清除,请将此类用作基类。此类包含两个处理对象时调用的受保护成员函数:

  • preDisposing() - 通知所有注册的事件侦听器前调用。
  • postDisposing() - 通知所有注册的事件侦听器后调用。此方法中应执行资源清除。

继承 uno.util.WeakComponentBase 并重载相应的方法。

Content on this page is licensed under the Public Documentation License (PDL).
Personal tools
In other languages