封装API的选项

时间:2009-07-31 14:38:55

标签: c# api ms-office

我想扩展API(Visio API - Microsoft.Office.Interop.Visio)。课程没有密封。他们内部有一些奇怪的COM内容。

我有什么选择?

具体来说,从我的应用程序的商业逻辑中分离纯(外部)api访问的最佳方法是什么?

2 个答案:

答案 0 :(得分:0)

我会写一个接口类。

您的接口类将在C#中,它将负责调用所有COM内容。

然后在代码的其他区域(即业务层)中,调用接口类来获取文档。

我不会直接公开这些函数,即使例如你的接口中的Save()和COM有相同的签名。这将为您提供未来可扩展性的自由。

答案 1 :(得分:0)

您可以使用Proxy或(可能更合适)Adapter模式。

基本思想是创建一个包装类,其中包含要包装的类的实例。包装器类具有适合您的用法的方法,该方法委托给包装类来执行实际工作。这允许您将包装类的依赖性仅隔离到包装类中的代码。