作者scars (scars)
看板Flash
标题Re: [问题] 呼叫大量且命名有规律的function
时间Sat Sep 4 07:04:33 2010
※ 引述《cjcat2266 (CJ Cat)》之铭言:
: 容我罗嗦一下
: 基本上函式名称会取的跟这个函式所做的事情有关系
: 几乎不可能出现这种序号式的取法 (当然,偷懒的时候例外)
:
※ 发信站: 批踢踢实业坊(ptt.cc)
: → justaID:(PS:f1~f10内容不同,这麽取名是由於将另一个大函式拆成 09/03 00:49
: → justaID:很多小函式,希望程式不要太长好方便维护,算是"分段"的 09/03 00:50
: → justaID:一个目的,但又需要照原本顺序执行,所以才这麽取名 09/03 00:51
: → justaID:我目前只想到这样的作法来方便维护,也许有更好的方法?) 09/03 00:52
就像cj神说的,一般我们不是这样做,
我也建议你不要这样做。原因後面讨论
这个讨论串原始问题的「问题」有两个:
1.怎麽会出现长到必须分段的code
2.怎麽会用数字命名的函式去把它分段
一个例子是我以前写过的code
在主程式启动的时候,我要在场景上建立许多新的物件
设定它们的属性,加上侦听函式
再抓取已经在fla里面的物件reference
设定它们新的属性,加上侦听函式
接着判断一堆东西然後做出对应的设定
最後连到server去,等server回传再进行下一动
写起来超过一页,一眼看不完
现在我的code不会出现一个要用拉霸才能看完的函式
从一开始就不会有写出长函式的念头
要是我现在要重写那个code
我会写一个 configNewObjs() 函式去建立物件
那些物件自己写一个类别,让我用一行就可以设定他的属性以及侦听
一个 configExistsObjs() 函式去抓已经存在的物件
一个 setProbs() 让我设定他们的属性
一个 ConditionManager类别来判断并设定其他的东西
最後用 WebHandler 类别来跟server联系
而不是把原本的code分屍成10个然後命名为 func1 func2 func3 func4...
这样绝对不会比较好维护
後代子孙看到 func7,他会知道这个是在做什麽的吗?
不会,他只知道它排第7
想要改个功能,他是不是必须从 func1 开始找找找... 喔原来写在func8
*用有意义的函式命名就可以解决这个问题*
如果某A要改func3,某B要改func5
是不是一定要先等一个改完,档案才能交给下一个,只能接力不能并行
*规划出不同类别就可以解决这个问题*
所以我会建议你
1.用有意义的函式命名,别用流水号
2.该给别的类别作,就给别的类别作,不要一个类别鞠躬尽瘁死而後已
3.//要便於维护当然别忘了注解喔
额 不小心打的有点长 ||
--
'Cause you are beautiful
your scars are beautiful
like the jade
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.224.42.5
1F:推 etrexetrex:推~~!! 09/04 10:01
2F:推 cjcat2266:Good :) 09/04 11:57
3F:推 dsmwang:push~ 09/04 13:45
4F:推 justaID:好具体的解说! 受教了! 感谢! 09/04 16:26