2009-07-31 70 views
0

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

我有什么选择?

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

回答

0

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

基本的想法是创建一个包装类,它包含你正在包装的类的一个实例。包装类具有适合于您的使用情况的方法,委派给包装类来完成实际工作。这使您可以将包装类的依赖性仅限于包装类中的代码。

0

我会写一个接口类。

你的接口类将在C#中负责调用所有的COM东西。

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

我不会直接暴露这些函数,即使例如如果您的接口中的Save()和COM具有相同的签名。这会给你未来可扩展性的自由。