java - 如何设计我的 Java 类以使用已定义的 Utility 类的方法?

标签 java oop selenium webdriver

如何设计 Java 类以正确扩展实用程序类?这是我目前的操作方式的屏幕截图,但我怀疑有更好的方法吗?我在这里使用了正确的面向对象设计吗?我这样做是因为需要扩展 required LoadableComponent 类,并且还需要访问我自己的 WebDriverUtils 实用程序类中的所有静态方法。由于我不是受过正规教育的程序员,因此我正在寻找更好的想法。

换句话说,Utility 类不是“is a”,也不是“has a”,那么它如何适应 oop 的世界呢?

如果您想查看我如何实现此图的示例,我编写的一些代码位于 GitHub 上,请参阅 my project here 。如果有人想发布执行此操作的正确方法的图表,那也很棒。

enter image description 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/

相关文章:

c# - 是否有一种通用的 DDD 模式来处理域对象的欠载?

c# - 关于基于类的文本冒险游戏设计的质疑。

java - 当在selenium中同时打开多个页面窗口时,如何导航到特定选项卡?

java - Java中的二叉搜索树遍历(输出不正确)

java - 神秘的 ANTLR 错误

java - 对具有相同特定实例变量的对象 [在对象数组内] 的实例变量求和

javascript - 如何使用 python selenium 单击位于 html 页面列表中没有唯一标识符的文本?

java - 在selenium java中动态将数据写入excel

java - hibernate "Provided id of the wrong type expected Long, got class DelayedPostInsertIdentifier"异常

java - 如何防止 Spring Tool Suite maven JVM 进程将 java 图标放置在 Mac 的 Dock 上?