例程可以有参数,这不是新闻。您可以根据需要定义任意数量的参数,但过多的参数会使您的例程难以理解和维护。
当然,您可以使用结构化变量作为解决方法:将所有这些变量放在一个结构中并将其传递给例程。事实上,使用结构来简化参数列表是 Steve McConnell 在 Code Complete 中描述的技术之一。但正如他所说:
细心的程序员避免捆绑数据超出逻辑上的必要。
因此,如果您的例程有太多参数,或者您使用结构体来伪装一个大参数列表,那么您可能做错了什么。也就是说,您不会保持耦合松散。
我的问题是, 我什么时候可以认为参数列表太大了? 我认为超过5个参数,太多了。你怎么看?
尽管第一修正案保证言论自由,什么时候被认为如此淫秽以至于可以监管的东西?根据波特斯图尔特法官的说法,“我一看到就知道了。” 这里也一样。
我讨厌制定这样的硬性规则,因为答案的变化不仅取决于项目的大小和范围,而且我认为它甚至会变化到模块级别。根据您的方法正在做什么,或者该类应该代表什么,很可能 2 个参数太多并且是过多耦合的症状。
我建议通过首先提出问题,并尽可能多地限定你的问题,你真的知道这一切。这里最好的解决方案不是依赖一个硬性和快速的数字,而是在你的同行中进行设计评审和代码评审,以确定你的内聚度和紧密耦合度较低的领域。
永远不要害怕向您的同事展示您的工作。如果你害怕,那可能是你的代码有问题的更大迹象,而且你 已经知道了 。