我有一个电子邮件组件,我正在将其集成到我的应用程序中,寻找一些关于如何围绕它构建包装器的提示,以便我可以在需要时将其与另一个 3rd 方组件交换。
我现在的做法是:
- 构建一个界面将是我需要的功能。
- 创建一个实现接口的类,在这个类中使用我的第 3 方组件。
该组件的任何使用都将通过接口进行,例如:
IPop3 pop3 = new AcmeIncePop3Wrapper(); pop3.connect();
在 AcmeIncePop3Wrapper 内部将是:
public void connect()
{
AcmeIncePop3 pop = new AcmeIncePop3();
pop.connect();
}
这是一个好方法吗?
我可能可以通过使用 ninject 添加另一个抽象,这样我就可以换出实现,但实际上这似乎就是我所需要的,因为我不希望每天都更改 3rd 方程序集,只是不想让事情变得如此紧密耦合。