代码大全学习笔记7

第七章

7.2 在子程序层上设计

内聚性:指子程序中各种操作之间联系的紧密程度

  1. 功能的内聚性:实现功能单一且与子程序名字相符
  2. 顺序上的内聚性:意思就是一个子程序的执行,最好与另一个子程序的执行,没有依赖或者说顺序关系;
  3. 通信上的内聚性:其实我个人的理解这个问题还是功能的内聚性;
  4. 临时的内聚性
  5. 过程的内聚性
  6. 逻辑上的内聚性:如果子程序位移的功能就是发布各种命令,其自身并不做任何处理,这通常也是一个不错的设计。这类子程序的技术术语便是“事件处理器”;
  7. 巧合的内聚性

总结,其实所有的内聚性都可以最终理解到功能内聚性上,因此在设计子程序的时候,如果不知道如何去兼顾其他的内聚性,那么就做好功能的内聚性。

7.3 好的子程序名字

  1. 描述子程序所做的所有事情:如果描述完整个子程序的功能,子程序名很长很傻,那么就是子程序的功能不够内聚;
  2. 避免使用无意义的、模糊或表述不清的动词:尽量不要使用模糊的 handle perform process或者dealwith等动词,但当handle用作事件处理 event handling这一特定的技术含义时是个例外;另一种情况是,子程序功能不明确导致动词不明确,所以功能内聚性很重要;
  3. 不要仅通过数字来行程不同的子程序名字
  4. 根据需要确定子程序名字的长度:研究表明,变量名的最佳长度是9到15个字符;
  5. 给函数命名时要对返回值有所描述
  6. 给过程起名时使用预期强烈的动词加宾语的形式:如PrintDocument()、CalcMonthlyRevenues()等;
  7. 准确使用对仗词
    在这里插入图片描述
  8. 为常用操作确立命名规则

7.4 子程序可以写多长

大概的意思就是,复杂算法的长度会达到100到200行,但超过200行的话,就要小心了;如果不是实现的复杂算法,那么最好还是要尽量的短小,尤其是尽量满足内聚性、嵌套层次、变量数量等与复杂度有关的考虑事项。

猜你喜欢

转载自blog.csdn.net/u012850592/article/details/89490716