【问题标题】:Design Pattern/ OOP : How to split operation into classes设计模式/ OOP:如何将操作拆分为类
【发布时间】:2012-11-16 17:17:59
【问题描述】:

我正在使用 python 页面对象进行自动化。我有一个 basePageObject(ChangePasswordPage),它还有 4 个其他子页面,它们的不同之处在于页面上的字段。所有这些更改密码页面都在同一个 URL 上运行,但它们因字段而异,这取决于用例。例如一个有,旧密码字段,另一个没有,还有一个带有安全问题和答案之类的。这就是为什么我为所有这些变体创建了不同的子类。

现在我的问题是,我必须编写一个操作,递归地尝试使用给定的密码集更改密码。我不能在子更改密码页面中编写该操作,因为该递归操作需要子类的“changePassword”操作。此外,每个子类的这种递归操作是不同的。所有子类的情况都不一样。那么哪种模式最适合这种情况。我在哪里编写这个新的递归操作,如何创建新类以及如何应用 OOP 原则。

【问题讨论】:

  • 请提供一些代码。这里有一些提示,您可能会遇到更多基本的设计问题,但没有代码,很难说任何事情。

标签: python oop design-patterns selenium pageobjects


【解决方案1】:

这是一个普遍的问题,但我认为您可以尝试Strategy Pattern。 您编写“更改密码”用例所需的方法并将它们抽象在basePageObject 中。在所有ChangePasswordPageObject 中,您实现了一个具体的密码更改方法。
因此,您在所有情况下都有基本相同的方法调用,但它会根据用例/密码页面执行不同的操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-14
    • 2012-05-25
    • 1970-01-01
    • 2013-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多