Class 结构使用 Java Selenium SlowLoadableComponent
Class structure using Java Selenium SlowLoadableComponent
我正在使用 Selenium 及其 PageFactory 设计一个应用程序。
我的每个页面对象 classes 都继承自具有标准方法的基础 class,但我也有一些页面需要 SlowLoadableComponent。由于这是作为抽象实现的 class 我不能同时扩展它和我的基本页面 class.
使我的基本页面 class 扩展 SlowLoadableComponent 有什么缺点吗?如果是这样,您是否会将基本页面 class 实现为具有默认方法或其他方法的接口?
如果你有 multiple inheritance...
Java 中多重继承的解决方法是 delegation。
因此,您可以将代码重构为如下所示:
public interface IBasePage {
//... unimplemented base page methods
}
public class BasePageImpl implements IBasePage {
public BasePageImpl(WebDriver webDriver) { //... }
//... implemented base page methods
}
public class FastPage implements IBasePage {
//... delegate all base page methods to the BasePageImpl
}
public class SlowPage extends SlowLoadableComponent implements IBasePage {
//... delegate all base page methods to the BasePageImpl
}
我正在使用 Selenium 及其 PageFactory 设计一个应用程序。
我的每个页面对象 classes 都继承自具有标准方法的基础 class,但我也有一些页面需要 SlowLoadableComponent。由于这是作为抽象实现的 class 我不能同时扩展它和我的基本页面 class.
使我的基本页面 class 扩展 SlowLoadableComponent 有什么缺点吗?如果是这样,您是否会将基本页面 class 实现为具有默认方法或其他方法的接口?
如果你有 multiple inheritance...
Java 中多重继承的解决方法是 delegation。
因此,您可以将代码重构为如下所示:
public interface IBasePage {
//... unimplemented base page methods
}
public class BasePageImpl implements IBasePage {
public BasePageImpl(WebDriver webDriver) { //... }
//... implemented base page methods
}
public class FastPage implements IBasePage {
//... delegate all base page methods to the BasePageImpl
}
public class SlowPage extends SlowLoadableComponent implements IBasePage {
//... delegate all base page methods to the BasePageImpl
}