[英]Extending Page Object Base class and LoadableComponent<?> together
目前,我正在为我的一个项目实现LoadableComponent设计模式。
之前我使用的是“ BasePage”,“ Pages”包下的每个页面都在扩展。
现在按照LoadableComponent设计模式,每个页面都需要扩展LoadableComponent并应覆盖'load()'和'isLoaded()'方法,但是我的问题是如何在每个页面类中同时扩展BasePage和LoadableComponent?
如果我使用多级继承,那么如何为每个类定义isLoad()和isLoaded()? 因为它们对于每个类都需要不同。嵌套的组件也是不可能的。
public class BasePage<T extends BasePage<T>> extends LoadableComponent<BasePage>{
.......
}
public class LoginPage extends BasePage {
..........
}
请建议我一个解决方案??
好吧,我解决了:-
public class BasePage<T extends BasePage<T>> extends LoadableComponent<T>{
@Override
public boolean isLoaded() {
// Blank as all implemented algo comes under pages
}
@Override
public boolean isLoad() {
/// Will be Blank
}
}
public class LoginPage extends BasePage {
@Override
public boolean isLoaded() {
//Write logic
}
@Override
public boolean isLoad() {
/// Write Logic
}
}
您可以覆盖子类中的所有非私有非静态方法。 这是一个基于您的项目的示例:
public class BasePage<T extends BasePage<T>> extends LoadableComponent<BasePage>{
public boolean isLoaded() {
// Do something interesting
}
public boolean isLoad() {
// Do something interesting
}
}
public class LoginPage extends BasePage {
@Override
public boolean isLoaded() {
// Do something new based on LoginPage
}
}
可以在这里找到更多信息: http : //docs.oracle.com/javase/tutorial/java/IandI/override.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.