4

我正在将一些外部 API 集成到分层应用程序中。像通常的分层应用程序一样,它具有三层,我将这些 API 连接到业务层。“第三方 API 和服务”是指支付网关、邮政编码查询等。

目前,对于每个 api,我创建了一个服务契约接口,api 包装器将继承接口类。这个接口将被注入到业务类的构造函数中,ioc 容器将在应用程序的入口点解决这个问题。

我想将这些 api 层与业务层解耦,并使它们在其他项目中也可重用。我的问题是,有没有更好的方法或设计模式来集成外部服务。我非常感谢任何指向指南或代码片段的链接。

4

2 回答 2

3

如果您想为您的第三方 API 服务创建一个可插入的框架,您可能需要研究 MEF。这将使您能够创建一种更加不可知的服务供应类型,这意味着您可以从框架中换入/换出服务 - 这可能会使将当前和未来的外部服务集成到您的应用程序中变得更加容易,而无需产生大量的重构成本。

http://msdn.microsoft.com/en-us/library/dd460648.aspx

于 2013-04-04T13:45:19.883 回答
3

对于每个第三方 API,我会创建一个接口并将其放入单独的项目中。然后我会为每个接口的实现创建一个新项目。

例如,您的项目结构可能看起来像

YourSolution
  ...
  -Company.Interfaces.ThridPartyAPi1
  -Company.Interfaces.ThridPartyAPi2
  -Company.Interfaces.ThridPartyAPi3

  -Company.Services.ThridPartyAPi1
  -Company.Services.ThridPartyAPi2
  -Company.Services.ThridPartyAPi3
  ...

这将您的代码与 API 代码分离,并将 API 接口与 API 代码分离,这意味着它可以很容易地被模拟/存根以进行测试。

于 2013-04-05T10:56:32.210 回答