对象模型
KOffice不是一些相互独立的office应用的简单的集合。正相反,它是由许多相互独立的组件(components)重新组合成一些可以相互通信相互协作的块。就象微软的DCOM 和OLE,
应用软件的服务和功能不仅可以提供给用户,而且可以提供给其他应用程序。Koffic以非常直接和透明的方式提供这种能力,它允许任何合乎要求的应用程序嵌入其他的程序内。例如用户可以把KSpread的表格嵌入到KPresenter中,如果用户在Ksresenter中点击KSpread表格。KPresenter窗口中的菜单和工具条就被替换为KSpread的菜单和工具条。这样虽然会话发生在KPresenter内,但是用户却可以象在KSpread内部一样编辑KSpread表格。如果用户点击窗口内表格以外的部分,Ksprenter的菜单和工具条就被替换回来。
除此而外,KOffice ""shells""嵌入了组件的部分各部分之间可以通信。引用一个很典型的例子,Kdiagram可以显示KSpread中以图表格式存储的数据。如果用户选择了一些KSpread中的单元格,并选择建立图表的选项。嵌入在Kdiagram中的KSpread组件就把单元中的数据形象的显示出来了。这个过程中只有数据发生了传递。如果被选中的单元内的数据发生了变化,嵌入的图表可以自动更新!这个特性使得KOffice的符合文档更加高效、简单和直接。KOffice做到这一点的关键是各种应用程序可以组合并保存在一个文档中。下面的具体对于每一个KOffice的应用描述将更具体的说明各个部分之间是如何嵌入的。
Linux的KOM/OpenParts对象模型使得应用程序的有可能很容易的成为其他其他应用程序的资源,被其他应用程序分享。KOM/OpenParts是建立在MICO基础上的,MICO是CORBA2.2的全功能免费版本。CORBA是一个分布式对象之间相互通信的工业标准。随着可用组件数量的增长,每一个应用程序都在专业组件群中启动,而这个组件群中的每一项服务都是由专家提供的。
KOM/OpenParts的工作特性如下:
减少开发时间,因为程序坚固的组件是可以即插即用的,只需要开发特定的组件,而且这些组件不需要重新编译就可以与其他的组件自动的组合在一起。
降低开发难度,我们没有必要再次发明轮子。
让程序更强大。
增加程序的灵活性,因为程序的能力取决于主系统所采用的合法组件。
简化建立和管理符合文件和类似的对象。
因为KOM/OpenParts是独立于GUI的,因此我们希望它可以成为UNIX下和Linux下不同应用程序之间互操作的一个标准。
更多的信息请参考本文的后半部分或者http://www.mieterra.com/article/KOffice.html#1 。