如何设计 Java 类以正确扩展实用程序类?这是我目前的操作方式的屏幕截图,但我怀疑有更好的方法吗?我在这里使用了正确的面向对象设计吗?我这样做是因为需要扩展 required LoadableComponent 类,并且还需要访问我自己的 WebDriverUtils 实用程序类中的所有静态方法。由于我不是受过正规教育的程序员,因此我正在寻找更好的想法。
换句话说,Utility 类不是“is a”,也不是“has a”,那么它如何适应 oop 的世界呢?
如果您想查看我如何实现此图的示例,我编写的一些代码位于 GitHub 上,请参阅 my project here 。如果有人想发布执行此操作的正确方法的图表,那也很棒。
注意:在此 Web 浏览器测试自动化项目图中,TabIFrameOne 和 tabIFrameTwo 是页面对象,用于处理 iframe 何时完成加载并识别框架中可交互的元素的识别。 DefaultPage 是主浏览器窗口 DOM,并不代表 iFrame 内的 DOM。每个 iFrame 类都使用 WebDriver PageFactory.initObjects() 来加载 Web 元素。
最佳答案
我想说继承在这里是一个坏主意。一个页面可能有一个实用函数,但它不会是一个实用函数。
继承意味着 IS-A:如果类 A 扩展 B,则类 A IS-A B。您必须能够在每个需要 B 的上下文中使用 A 的实例。
组合意味着“HAS-A”。优先选择组合而不是继承。
我也不喜欢将对象映射到 HTML Web 组件的面向对象设计。太耦合了...
关于java - 如何设计我的 Java 类以使用已定义的 Utility 类的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15576518/