gpt4 book ai didi

java - 我的用例使用哪种设计模式?

转载 作者:搜寻专家 更新时间:2023-10-31 19:44:41 26 4
gpt4 key购买 nike

我有一个用例,其中输入是一组参数(例如 A、B、C、D)和数据(例如 XYZ)。基于参数(A、B、C、D),我必须处理数据(XYZ)并回复。根据参数,处理逻辑可以是唯一的或通用的(比如只在 A 时执行某事#1,在 A 和 C 时执行某事#2,在 B、C 和 D 时执行某事#2,等等)。我可能还需要维护处理顺序。

当前的实现是基于 if-else 循环。我正在研究责任链、管道设计模式。但是还有其他适合上述任务的设计模式吗?

使用 if-else block 的示例:

I/P:A={A1,A2,A3},B={B1,B2,B3},C={C1,C2,C3},D={D1,D2,D3} 和 XYZ="富”

if (A == A1)
{
//dosomething-A1

if (B == B1)
{
//dosomething-B1

if (C == C2)
{
//dosomething-C2
}
}
else if (B == B2)
{
//dosomething-B2
}

if (C == C2)
{
//dosomething-C2

if (D == D1)
{
//dosomething-D1
}
else if (D == D3)
{
//dosomething-D3
}
}
}
else if (A == A2)
{
//dosomething-A2
...
}
else if (A == A3)
{
//dosomething-A3
...
}

最佳答案

Chain 似乎很适合这个,如果它被重复使用的话。另一种选择是使用存储在映射中的处理程序,其中键是适当的参数值。这适用于作为参数传递的一组有限的可能值。你会得到类似的东西:

handlers.get( a ).handle(XYZ)

所以,对你来说完全是 if-less。但同样,这并不适合所有目的。

关于java - 我的用例使用哪种设计模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34931415/

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