代码之家  ›  专栏  ›  技术社区  ›  geejay

为什么在Office互操作API中存在接口/类(IFoo、FooClass)模式?

  •  0
  • geejay  · 技术社区  · 17 年前

    在Microsoft.Office.Interop.Visio库中,每个实体(例如形状)都被描述为类(ShapeClass)和接口(Shape)。

    因此,对于您拥有的每个元素:

    interface Shape { ... }
    class ShapeClass : Shape { ... }
    
    interface Page { ... }
    class PageClass : Page { ... }
    
    ...
    

    4 回复  |  直到 17 年前
        1
  •  1
  •   Kim Gräsman    17 年前

    名称空间的“互操作”部分暗示这实际上是一个基于COM的API。

    COM是微软第一次尝试为开发人员提供与语言无关的组件模型,其核心原则之一是基于接口的设计。

    在你的例子中, ShapeClass 被称为“co类”,这是 Shape 接口。

        2
  •  0
  •   AwkwardCoder    17 年前

    我想这是因为它们都是作为COM对象实现的,接口用于定义类实现的契约——接口将在IDL中实现

    wiki COM

        3
  •  0
  •   John Saunders    17 年前

    因为COM就是这样工作的。

    COM定义组件实现的接口。COM中几乎所有的东西都是基于接口的。接口比实现它们的类更重要。

        4
  •  0
  •   SLaks    17 年前

    这是基于COM的工作方式。

    如果您正在寻找优秀的.Net设计示例,请

    要使Office库更易于使用,请尝试 VSTO Power Tools