parameters - 多少个参数太多?

标签 parameters language-agnostic

例程可以有参数,这不是什么新闻。您可以根据需要定义尽可能多的参数,但太多会使您的例程难以理解和维护。

当然,您可以使用结构化变量作为解决方法:将所有这些变量放在一个结构中并将其传递给例程。事实上,使用结构来简化参数列表是 Steve McConnell 在《Code Complete》中描述的技术之一。但正如他所说:

Careful programmers avoid bundling data any more than is logically necessary.

因此,如果您的例程有太多参数,或者您使用结构来伪装大参数列表,则您可能做错了什么。也就是说,你没有保持松散的耦合。

我的问题是,什么时候我可以认为参数列表太大?我认为超过 5 个参数就太多了。你觉得怎么样?

最佳答案

什么时候某些东西被认为是如此淫秽以至于可以在第一修正案保证言论自由的情况下受到监管?根据法官波特·斯图尔特的说法,“当我看到它时我就知道了。”这里同样如此。

我讨厌制定这样严格而快速的规则,因为答案的变化不仅取决于项目的大小和范围,而且我认为它甚至会变化到模块级别。根据你的方法正在做什么,或者类应该代表什么,两个参数很可能太多,并且是耦合过多的症状。

我建议,通过首先提出问题,并尽可能多地限定你的问题,你真的知道这一切。这里最好的解决方案不是依赖一个硬性且快速的数字,而是在同行中寻求设计审查和代码审查,以识别低内聚和紧密耦合的领域。

永远不要害怕向同事展示你的作品。如果您害怕,这可能是更大的迹象,表明您的代码有问题,并且您已经知道

关于parameters - 多少个参数太多?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/174968/

相关文章:

algorithm - 向后打印一个没有递归的简单链表,最多两次,使用常量额外内存,保持原样

language-agnostic - 通过数据库(百万),指纹查找重复的视频文件?模式识别?

maven - MVN Selenium Testng -- 如何通过 pom.xml 将参数从命令行传递到 testsuite.xml

c# - 如何在设置类型等方法中设置参数

java - jna 句柄和字符串中函数映射 delphi/pascal dll

language-agnostic - "65k"和 "65KB"是否相同?

java - 通过build.gradle文件告诉IntelliJ为Javac设置-parameters标志

sql-server - Sql Server Reporting Services 必须声明标量变量 @param

algorithm - 功能替代品?

algorithm - 自底向上合并排序在哪里有用?