1

我不确定这是什么电话或如何用谷歌搜索解释,但这里有

假设我有一个接口调用 IView 和一个类继承 IView 调用 View 类。在某些项目中,我看到以下代码:

IView view = new View();

为什么要这样做?为什么不只是做

var view = new View();

声明一个接口然后创建一个 View 对象有什么目的吗?为什么不做第二步?

4

2 回答 2

2

如果使用var关键字,将自动检测变量的类型,并且可能是 typeView而不是IView. 你的代码的读者更清楚你实际上是想有一个IView参考。

接口的想法是,哪个类实现它们并不重要,因此您的代码是建立在这样的知识之上的:this..thing..实现了所有 IView 的属性和方法,而不管它是哪个类。

这样的设置将允许您稍后轻松插入不同的类。您可以将此行替换为对 IView工厂的调用,您根本不知道它返回哪个类实例。

于 2013-08-18T06:00:16.247 回答
1

您可能需要查看不同于任何 View 的东西,例如,如果 View 是 SpecialView 的一个类,那么var view即使它们都具有 IView 接口,您以后也不允许您为其分配 GenericView 的东西。

于 2013-08-18T05:58:37.830 回答