gpt4 book ai didi

java - 在两个不具有相似功能的类之间进行选择的适当设计模式

转载 作者:行者123 更新时间:2023-12-02 11:57:06 25 4
gpt4 key购买 nike

我有 2 个类 Workflow1.java 和 Workflow2.java。在类 Selection.java 中,我希望能够在将 2 个类之一实例化为静态成员之间进行选择,但是我无法实现工厂模式,因为 Workflow1 和 Workflow2 不能是子类,因为它们的方法不相同。尽管它们实现了相同的最终结果,但它们是通过执行完全不同的操作来实现的。有适合这种场景的设计模式吗?

示例:如果类是 WalkHelper.java 和 DriveHelper.java,则每个类所需的方法完全不同,但您想要实现的目标是相同的 - 到达目的地。我还没有创建 walk() 和drive() 作为方法,因为 WalkHelper.java 已存在于我们的代码库中,并且我将 DriveHelper.java 添加到其中。

最佳答案

听起来你仍然可以使用 Factory 模式,但你可能必须使用 Adapter 来使它们相等......如果不了解更多,这是一个相当困难的事情要回答的问题。

interface IFactory {
void run();
String getResult();
}

class Workflow1Adapter implements IFactory {
Workflow1 wf1 = new Workflow1();

public void run() {
wf1.doSomething();
}

public String getResult() {
wf1.doAnother();
}
}

class Workflow2Adapter implements IFactory {
Workflow2 wf2 = new Workflow2();

public void run() {
wf2.doThatThing();
}

public String getResult() {
wf2.doReturn();
}
}

class Workflow1 {
public void doSomething() {}
public String doAnother() {}
}

class Workflow2 {
public void doThatThing() {}
public String doReturn() {}
}

关于java - 在两个不具有相似功能的类之间进行选择的适当设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47524085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com