gpt4 book ai didi

Java 抽象类 - 我怎样才能最好地解决这个问题?

转载 作者:行者123 更新时间:2023-11-30 08:40:19 24 4
gpt4 key购买 nike

我有一个抽象类“TopHandler”。有两个扩展 TopHandler 的类:“UserHandler”和“MerchantHandler”。

我有一个方法 sendMessage() ,我不确定该放在哪里。一种选择是将它放在 TopHandler 中并创建一个 UserHandler 或 MerchantHandler 的对象,如下所示:

public abstract class TopHandler {

//Other methods...

public void sendMessage() {

TopHandler handler;
if (message.equalsIgnoreCase("User")) {
handler = new UserHandler();
//Call UserHandler implementation of abstract methods
} else {
handler = new MerchantHandler();
//Call MerchantHandler implementation of abstract methods
}
}
}

我的另一个选择是使 sendMessage() 抽象并让两个类都实现它,但这确实会创建一些重复/非常相似的代码。

最佳答案

我会调用一个显式工厂方法来明确它正在做什么。

static TcpHandler create(String mode) {
return mode.equalsIgnoreCase("user") ? new UserHandler() : new MerchantHandler();
}

然后您可以在您的实例代码中调用此方法。

关于Java 抽象类 - 我怎样才能最好地解决这个问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35723818/

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