我正在使用Selenium及其PageFactory设计应用程序。
我的每个页面对象类都继承自带有标准方法的基类,但我也有一些需要SlowLoadableComponent的页面。由于这是作为一个抽象类实现的,我不能扩展它和我的基页类。
使我的基页类扩展SlowLoadableComponent有什么缺点吗?如果是这样,你会将基页类实现为具有默认方法或其他东西的接口吗?
答案 0 :(得分:1)
如果只有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
}