首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用WebDriver driver = new FirefoxDriver()和FirefoxDriver driver = new FirefoxDriver()创建驱动程序对象之间的区别?

使用WebDriver driver = new FirefoxDriver()和FirefoxDriver driver = new FirefoxDriver()创建驱动程序对象之间的区别?
EN

Stack Overflow用户
提问于 2018-09-21 11:37:19
回答 1查看 394关注 0票数 0

我们可以使用以下方式创建驱动程序对象。

代码语言:javascript
复制
WebDriver driver = new FirefoxDriver();

FirefoxDriver driver = new FirefoxDriver();

FirefoxDriver是一个实现WebDriver接口的类。

在第一个语句中,我们使用接口名称,在第二个语句中,我们使用类名。这两者之间有什么区别吗?比如我们不能访问一些方法等等?

我在堆栈溢出上寻找了这个问题,发现第一个是动态绑定,第二个是静态绑定,但是上面这两个声明之间有什么真正的区别吗?

如果我们没有任何区别,为什么我们应该有两个声明?

有人能回答这个问题吗?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-21 11:42:29

这是一个基本设计原则:“程序到接口而不是实现”。用非常简单的术语来说,这可以帮助我们在将来轻松地改变数据结构,而不需要做太多的修改。

假设今天,您使用list的一个实现,比如ArrayList。明天,您可能会意识到您需要使用LinkedList。如果您已经编程到一个接口,它只是一行更改,因为在代码中的任何地方,您都在使用接口引用变量。另一方面,如果您已经对实现进行了编程,则需要更改对该变量的所有引用。这可能涉及更改方法返回类型、方法参数、getter、setter等。

我们需要一种可以替代FirefoxDriverChromeDriver的类型。因此,WebDriver driver = new FirefoxDriver()为您提供了相同的灵活性。

参考https://seleniumjava.com/2016/07/13/how-does-webdriver-driver-new-firefoxdriver-work/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52442910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档