gpt4 book ai didi

java - 除了使用 if else 和 switch 之外,如何确定工厂模式中的子类类型?

转载 作者:搜寻专家 更新时间:2023-11-01 02:29:50 26 4
gpt4 key购买 nike

我想尝试工厂模式并且能够实现它,但是当
生成多个类,我认为这会很难看!!所以任何清晰度或建议将不胜感激......

我的父类(super class):

public abstract class Output {

public abstract void generate(Data dat); }

我的其他类都是从 Output 扩展而来的,比如

public class generateXML extends Output{
.
.
.
}

我的问题与这里有关:

public class generatorFactory(){

public Output generate(String str){

//或获取对象作为参数,如 (Object obj)

if(str.equals("xml"){  
return new generateXML();
}
else if.........
......
}

有什么方法可以避免检查每个类型来确定子类类型?

最佳答案

您应该考虑用映射替换您的 if-else 链。

不必编写代码来检查您想要支持的所有字符串,您只需几行代码即可从 map 中检索元素。

当然,您将需要一些更多的配置代码来将项目放入 map 中,但这应该是微不足道的。

Here这是一篇关于这个主题的好帖子(用 PHP 编写)

关于java - 除了使用 if else 和 switch 之外,如何确定工厂模式中的子类类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12259093/

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