High-Quality routines -- Code complete reading notes(7)
子程序就是为实现一个特点目的而编写的一个可被调用的方法和过程。
方法 -- 具有返回值
过程 -- 不具有返回值
为什么要创建子程序:
1、降低复杂度(隐藏信息)
2、引入中间、易懂的抽象,一个命名合适的子程序,是说明代码用意的最好方法
3、避免代码重复
4、支持子类化
5、隐藏顺序
6、隐藏指针操作
7、提高可移值性
8、简化复杂的判断
9、改善性能
10、隐藏全局数据
如何设计子程序:
1、功能内聚性,顺序内聚性,而不是通信上的内聚性和临时的内聚性,更不是过程上的内聚性(即顺序是外在性的)和逻辑上的内聚性(不是用来包装If判断的)、巧合上的内聚性。
2、好的名字,应该描述它干的所有事性,不要使用Ambiguous的动词,最好对返回值有所描述,准确使用对仗的词组。
如何使用参数:
1、排列顺序为:输入-修改-输出
2、重载时参数顺序保持一致
3、使用所以的参数
4、把状态码和出错变理放在最后
5、不要把子程序的参数用做工作变量
7、参数应该在7个以内
8、为子程序传递以维持其接口抽象的变理或对象(根据子程序内部抽象决定传递对象的属性还是对象本身)