gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 10:47:31 24 4
gpt4 key购买 nike

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

WebDriver driver = new FirefoxDriver();

FirefoxDriver driver = new FirefoxDriver();

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

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

我在 stackoverflow 上查找了这个问题,发现第一个是动态绑定(bind),第二个是静态绑定(bind),但是上面两个声明之间有什么真正的区别吗?

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

有人可以回答一下吗?

谢谢。

最佳答案

这是一个基本设计原则:“针对接口(interface)而不是实现进行编程”。简而言之,这有助于我们将来轻松更改数据结构,而无需进行太多修改。

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

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

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

关于java - 使用 WebDriver driver = new FirefoxDriver() 和 FirefoxDriver driver = new FirefoxDriver() 创建驱动程序对象之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52442910/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com