gpt4 book ai didi

java - 在这种情况下我应该使用什么代码设计?

转载 作者:行者123 更新时间:2023-12-02 05:37:24 25 4
gpt4 key购买 nike

假设我有以下代码(API 要求有两个几乎相似的方法):

method1() {
...
internalMethod();
...
}

method2() {
...
internalMethod();
...
}

internalMethod() {
...
internalMethodHelper();
...
}

internalMethodHelper() { ... }

假设我需要添加新的 method3(),该实现需要 internalMethod()internalMethodHelper() 的另一个签名。

所以,我认为,解决这种情况只有一种方法:

method1() {
...
internalMethod(sign1);
...
}

method2() {
...
internalMethod(sign1);
...
}

method3() {
...
internalMethod(sign2);
...
}

internalMethod(sign1) {
...
internalMethodHelper(sign1);
...
}

internalMethod(sign2) {
...
internalMethodHelper(sign2);
...
}

internalMethodHelper(sign1) { ... }

internalMethodHelper(sign2) { ... }

我说得对吗?或者在这种情况下重载方法是一个非常糟糕的代码设计?

感谢您的所有回答!

最佳答案

在本例中Strategy pattern可能帮助你。

Strategy Design Pattern - GOF 更好地解释了这一点其中指出:

The strategy pattern is a design pattern that allows a set of similar algorithms to be defined and encapsulated in their own classes. The algorithm to be used for a particular purpose may then be selected at run-time according to your requirements.

策略模式用于创建可互换的算法系列,从中在运行时选择所需的进程

这允许程序的行为根据配置详细信息或用户首选项动态更改。

它还可以在未来轻松合并新算法,从而提高灵 active 。

enter image description here

关于java - 在这种情况下我应该使用什么代码设计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24844987/

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