问题标签 [long-parameter-list]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
oop - 你如何对抗类层次结构中不断增长的参数列表?
我有一种强烈的感觉,我不知道在这种情况下使用什么模式或特定的语言技术。
那么,问题本身就是如何在支持 OOP 的语言中管理类层次结构中不断增长的参数列表?我的意思是,如果对于层次结构中的根类,假设有 3 个或 4 个参数,那么在它的派生类中,你需要调用基本构造函数并为对象的派生部分传递附加参数,依此类推……参数列表变为即使您的继承深度超过两个,也是巨大的。
我很确定许多 SOwers 都面临过这个问题。我对如何解决它感兴趣。提前谢谢了。
java - 具有长参数列表或多个设置器的构造函数?
要初始化一个实例,我们可以使用默认构造函数和许多 setter,或者使用带有长参数列表的构造函数。后一种方式在对象生成后对象状态可能保持不变(因为没有setter),但是长参数列表是丑陋且容易出错的。前一种方式避免了冗长的参数列表,但是在对象完全创建后,setter可能会错误地更改对象状态。
我需要这样一个对象,它的内部字段在对象创建后应该保持不变,而我不喜欢长参数列表。最好的做法是什么?
python - Python函数长参数列表
我正在寻找为我的函数提供参数列表的最佳方法:
问题是,当您有很长的参数列表要传递给您的函数时,它变得非常烦人,因为您必须编写整个参数列表的两倍,并且当您有 10 个或更多具有完整名称的参数时,它变得真的(真的) 重的。
所以我想到了这样的事情:
但是我仍然必须这样做:
有没有更短的方法可以从函数中给出和取回参数列表。或者给函数一个指针,让它直接修改参数?
这就是我正在寻找的:
c - 处理 doxygen 中的长链接
给定一个带有长参数列表的函数声明,例如:
有没有办法将参数列表拆分为多行,以便 doxygen 仍能@link
正确解析命令?目前,如果函数声明在一行上,我只能让它工作,即:
ruby-on-rails - 放置参数对象的地方
我是 Rails 新手,我对 Rails 的结构有疑问。
我的应用程序结构是这样的
OrdersController 接收创建订单请求并返回新订单。因为订单属于客户。因此,我创建了一个服务名称 GetCustomer,以便在不存在时查找或创建新客户。
但是,GetCustomer 服务中的 action 方法接收一个长参数。所以我需要把这个参数提取到另一个对象中。但我不知道我应该把它放在哪里?
任何建议对我来说都是优雅的!谢谢
c# - 在 C# 中有条件地传递可选参数
我有一个带有 10 多个可选参数的函数,并且我的程序中有设置来确定是否应该传递参数。例如,
以下是指示是否应设置参数的设置
如果我要按照设置来设置参数,那么我将不得不做这样的事情
如果我有 10 个设置和 10 个参数,那么我的组合会太多,所以我认为我的实现不可行。完成此操作的正确方法是什么?
java - 如何将长参数列表重构为 Java 中的参数对象?
我目前正在尝试重构 BufferedImage 类中的 getRGB、getSubimage 和 setRGB 方法。我对 Java 还很陌生,想写出好的代码;问题是我的参数列表变得很长,给我带来了问题。我发现参数对象是一种解决方案,但是我正在努力实现它。
我能否得到一个关于如何使用参数对象改进以下方法的表示?
public void setRGB(int startX,
int startY,
int w,
int h,
int[] rgbArray,
int offset,
int scansize)
c++ - 如何使函数的参数列表更清晰?
在我最近观看的一个视频中,Kate Gregory建议如果一个函数有一个巨大的参数列表(例如 4 个以上的参数),那么应该将所有这些参数放入一个struct
(即使它们成为结构的成员)并在初始化struct
,将其传递给所述函数(显然这也需要重构函数本身)。
我有一个带有 5 个参数的实用函数,您可以在下面看到:
正如所料,在任何调用站点调用此函数都会引入大量可怕的代码!
以上可以变成这样:
我试图将它分解成更小的部分(例如,两个较小的函数,每个函数都有更少的参数),但我没有这样做,因为这个函数的作用在逻辑上不能分成两部分,而且没有多大意义。所以我想寻求帮助,看看Gregory的方法在这种特殊情况下是否是一个有效的选择。
现在如果有人说这是一个有效的选择,那么我应该把这个特殊用途的定义放在哪里struct
(我的猜测是在声明大函数的头文件中,以便其他源文件可以通过包含大函数的头文件来访问该结构和然后调用函数)?