使用界面设置一个类,2个选项

时间:2013-01-30 22:24:26

标签: c# optimization

我正在经历一个例子,我不确定他们为什么要这样做。 他们正在使用IEmailSender设置mySender ....

IEmailSender mySender = new MyEmailSender();

为什么不写

MyEmailSender mySender = new MyEmailSender();

因为MyEmailSender已经有IEmailSender接口参考

2 个答案:

答案 0 :(得分:2)

稍后在代码中他们可以写

mySender = new MyNewEmailSender();

如有必要。但这不一定是对或错。他们只是试图指出一点,mySender是一个IEmailSender,无论实施如何。

答案 1 :(得分:2)

很多原因,一个是如果你针对IEmailSender界面进行编程,后来决定你想要MyEvenBetterEmailSender,你只需更改一行代码!

另一个是它允许你做"解耦"来自特定实现的代码,甚至可能注入而不是在程序中对其进行硬编码。

在维基百科上的interface-based programming上阅读更多内容。