减少传递给函数的参数数量的技巧

时间:2011-01-27 13:45:03

标签: actionscript-3 coding-style

HI,

我正在开发一个最初由其他人编写的AS3项目。我正在重写一个类中的一个函数。此函数创建一个简单的值对象,但该函数接受16个参数,这是一个混乱。

有什么好的方法可以重新编写它,使它看起来更整洁,更易于阅读?

由于

斯蒂芬

3 个答案:

答案 0 :(得分:1)

或者,或许,如果参数之间存在明显的关系,则创建一个类。实例化类,填写值,然后传递对象。

而不是

myfunc(p1, p2, p3, p4, p5, ..., p16);

你得到了

c1 = new c1();
c1.p1 = val
c1.p2 = val
...
c1.p16 = val

然后你打电话

myfunc(c1);

答案 1 :(得分:1)

我会选择以下内容:

  1. 检查是否可以节省一些参数(不使用,重复,可以通过其他方式检索),如果有些参数是多余的,我会不会感到惊讶。
  2. 检查某些参数是否在逻辑上相互连接。创建一个包含它们的对象可能是值得的。如果同一组参数也传递给其他功能,那么你就有了胜利者。
  3. 检查班级的设计,可能是其中一些人应该是班级成员。

答案 2 :(得分:1)

我要去链接http://en.wikipedia.org/wiki/Method_chaining,传递带变量集的匿名对象,如:

someFunction({id:1, pizzas:"1", types:["triple cheese"], location:"sun"});

或者,就像有人提到的那样,值对象http://en.wikipedia.org/wiki/Value_object,取决于您对代码的喜好:)。