gpt4 book ai didi

java - 编写包含大量案例的开关案例代码的最佳设计模式是什么?

转载 作者:行者123 更新时间:2023-11-29 08:27:36 25 4
gpt4 key购买 nike

我正在编写一段代码,其中我需要编写大量切换案例,并且每个案例都有一些业务逻辑,基本上是来自 mysql 数据库查询的查询。即

String computeResult()
{
//code to connect to mysql
switch(x)
{
case A:
//executing some query and return the result after some processing
case B:
//executing some query and return the result after some processing
//15 more such cases ahead...
}
}

我正在用 java 编写这段代码,它是一种面向对象的语言。
我研究了以下选项:
选项 1:将整个业务逻辑编写到同一个类中的 15 个单独的方法中,但随后我将采用过程语言方式。
选项 2:应用策略模式。并使用通用代码创建一个基类,然后使用各种不同的策略,每种策略都针对单个案例计算结果。对那些类的方法的调用仍然存在于 computeResult() 方法中。但这将需要类爆炸,我的项目将再添加 15 个类。稍后如果我需要添加更多案例,这意味着添加更多类,并在 computeResult() 方法中添加更多案例声明。
我不知道有什么方法可以避免 switch case 代码,那是硬编码的东西,最多我可以将这些 case 名称到类映射的常量文件中。

例如:

HashMap < String, BaseResultComputer > map

这只会将案例名称映射到相应的结果计算机实现。因此,每当我们再添加一个实现时,我们只是再添加一个类,并且必须在常量文件中进行更改。
请建议处理此问题的最佳设计是什么。

最佳答案

在我看来,我会在这种情况下使用策略模式,不用担心我们是否会有很多类,因为我们在 java 下工作,一种纯粹面向对象的语言,其次,解决方案接受 future 同意以注入(inject)新功能的灵 active 和简单性进行更新。

关于java - 编写包含大量案例的开关案例代码的最佳设计模式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51278344/

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