繁体   English   中英

扩展页面对象基类和LoadableComponent <?> 一起

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM