2013-08-18 87 views
1

我不知道这是什么电话或如何谷歌的解释,但在这里不用接口:声明一个类继承的接口

让说我有一个接口调用的iView和类继承的iView调用视图类。在一些项目中,我看到下面的代码:

IView view = new View(); 

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

var view = new View(); 

是否有目的声明一个接口,然后创建一个视图对象?为什么不做第二步?

+1

这很可能是一个骗局,但通常编码像第一个是首选,因为它更具可读性 – aaronman

+0

http://stackoverflow.com/questions/41479/use-of-var-keyword-in-c-sharp –

回答

2

如果您使用var关键字,则会自动检测变量的类型,并且可能类型为View而不是IView。您的代码读者更清楚您实际上是否有IView引用。

接口的思想是,哪个类实现它们并不重要,所以你的代码是建立在这个事物的基础上的,它实现了所有的IView的属性和方法,不管它是哪个类。

像这样的设置将允许您稍后轻松插入不同的类。你可以用这行代替对IView factory的调用,其中你根本不知道它返回哪个类实例。

1

您可能需要查看不是任何视图,例如,如果View是一个SpecialView类,那么var view将不允许您以后为它分配一些属于它的东西,即使它们都具有一个IView界面。