`
javatar
  • 浏览: 1704831 次
  • 性别: Icon_minigender_1
  • 来自: 杭州699号
社区版块
存档分类
最新评论

[摘]高质量的子程序

阅读更多
摘自:《代码大全》

高质量的子程序

1.        创建子程序的理由

1.1          降低复杂度

1.2          引入中间的、易懂的抽象

1.3          避免代码重复

1.4          支持子类化

1.5          隐藏顺序

1.6          隐藏指针操作

1.7          提高可移植性

1.8          简化复杂的逻辑判断

1.9          改善性能

除此之外,创建类的很多理由也是创建子程序的理由

1.10       隔离复杂度

1.11       隐藏实现细节

1.12       限制编号所带来的影响

1.13       隐藏全局数据

1.14       形成中央控制点

1.15       促成可重用的代码

1.16       达到特定的重构目的

2.        子程序的内聚性

2.1          可接受的内聚性

2.1.1     功能的内聚性

2.1.2     顺序上的内聚性

2.1.3     通信上的内聚性

2.1.4     临时的内聚性

2.2          不可取的内聚性

2.2.1     过程上的内聚性

2.2.2     逻辑上的内聚性


高质量子程序核对表

       大局事项

           创建子程序的理由充分吗?

           一个子程序中所有适于单独提出的部分是不是已经被提出到单独的子程序中了?

           过程的名字中是否用了强烈、清晰的“动词+宾语”词组?函数的名字是否描述了其返回值?

           子程序的名字是否描述了它所做的全部事情?

           是否给常用的操作建立了命名规则?

           子程序是否具有强烈的功能上的内聚性?即它是否做且只作一件事,并且把它做得很好?

           子程序之间是否由较松散的耦合?子程序与其它子程序之间的连接是否是小的(small)、明确的(intimate)、可见的(viaible)和灵活的(flexible)?

           子程序的长度是否是由其功能和逻辑自然确定,而非遵循任何人为的编码标准?

       参数传递事宜

           整体来看,子程序的参数表是否表现出一种具有整体性且一致的接口抽象?

           子程序参数的排列顺序是否合理?是否与类似的子程序的参数排列顺序相符?

           接口假定是否已在文档中说明?

           子程序的参数个数是否没有超过7个?

           是否用到了每一个输入参数?

           是否用到了每一个输出参数?

           子程序是否避免了把输入参数用作工作变量?

           如果子程序是一个函数,那么它是否在所有可能的情况下都能返回一个合法的值?

分享到:
评论

相关推荐

    编程常用英语:(手摘)

    ### 编程常用英语知识点详解 #### 一、基本概念与关键字 1. **Abstract (抽象)**:在Java中,`abstract`是一个修饰符,可以用于类和方法。抽象类不能被实例化,...掌握这些术语对于理解和编写高质量的代码至关重要。

    基于公共电话网络实现智能家居的研究

    软件设计方面,系统应用程序包含主程序、中断服务程序和延时子程序。主程序负责初始化、设置中断和内存赋值等工作,中断服务程序处理来自传感器的信号和用户的按键输入,进行报警和控制操作。程序流程图详细规划了...

    工业电子中的基于PLC的智能温度控制器的研究

    摘 要:介绍了由西门子公司S7-200 系列PLC 构成的温度控制器, 并阐述了VB 环境下计算机与PLC 温控系统的串行通信技术, 给出了部分程序.通过实例表明, 该系统可靠性高, 监控方便.  关键词: S7-200 PLC; 温度控制; ...

    图像转换系统毕业论文.doc

    2. **模数混合技术**:系统采用混合技术,语音信号进行数字化处理,确保音频信号的稳定传输和高质量通话;而视频信号则采用模拟传输,因为对于实时性的要求较高,模拟方式可以减少信号损失,保持图像清晰度。 3. **...

    三汇语音库开发API函数说明(Shp_A3.dll)

    这对于实现高质量的语音识别非常关键,因为它帮助软件准确地区分真实的人声与背景噪声,从而提高语音识别的准确性。 ##### 相关函数 - `SsmSetMinVocDtrEnergy`: 用于设置上述能量阈值。 #### 驱动程序支持的硬件...

    毕业论文 基于Authorware实现企业产品形象设计

    Application of enterprise product figure design based on Authorware <br>[摘 要] 本文结合一个实例,介绍了在基于Authorware的多媒体企业产品形象设计开发过程中对程序进行制作的原则和方法,并简单介绍...

    基于PBL 38710的话音通信用户接口模块设计.doc

    总结,基于PBL 38710的用户接口模块设计是一项融合硬件和软件的综合工程,需要深入理解芯片特性,精心设计电路,以及编写高效的控制程序,以实现高质量、低功耗的语音通信。通过这样的设计,我们可以构建出一种现代...

    单片机远程语音报警系统

    ISD4004语音芯片是美国ISD公司生产的单片录放音设备,提供8至16分钟的录音时间,具备高质量的音质。它内置了振荡器、防混滤波器、平滑滤波器、自动静噪、音频放大器和多电平闪烁存贮阵列。芯片通过SPI或Microwire...

    基于CMX860的来电显示电话测试仪的设计

    单片机通过编写相应的子程序,实现向CMX860写入或读取信息,如`OUTBYTE`、`IN_BYTE`和`WRITE_BYTE`子程序所示。 电话主叫识别业务是电话服务中的一个重要组成部分,它允许被叫方在接听电话前获取主叫方的信息,如...

    C&C08交换机维护培训教材-电信机务(中)(DOC 90).doc

    总而言之,对电信机务人员进行C&C08交换机维护的专业培训,既是对其技能的一种补充和提升,也是确保通信网络高质量服务的重要保障。通过对这本教材的深入学习,机务人员将能更好地面对日常工作中的挑战,为打造一个...

    石化工程建设项目设计管理概要.ppt

    由于项目的技术复杂性、涉及的专业多样性和广泛的关联范围,因此需要高水平的集成、巨额的投资、长期的建造周期以及严格的质量要求。 石化工程的建设过程通常被划分为五个阶段,每个阶段包含多个子过程,这反映了...

    工业电子中的计算机与PLC集成控制系统在石化行业的应用

    摘 要:计算机与PLC集成控制系统的基本组成、功能、系统软硬件设计与通信技术以及该系统在石化行业的应用。 关键词:计算机 PLC可编程序控制器 控制系统 通信技术  近年来,国际市场上石化产品的竞争日趋...

    电子测量中的基于CMX860的来电显示电话测试仪的设计

    SST89C58是一款与标准8052兼容的单片机,拥有36KB的高性能Flash存储器,既可以存储程序,也可以保存数据。这减少了外部元件的需求,提高了系统的可靠性和降低了成本,同时其良好的保密性也增加了设计的安全性。 在...

    统计数据采集与处理平台[汇编].pdf

    报表录入界面实现“所见即所得”,支持边录边审、跳转、自动摘数等功能,提高了数据录入的效率和准确性。此外,还允许用户自定义输入样式,如下拉菜单、单选框、复选框等。 **审核功能**: 软件提供网上和本地两种...

    程控课后习题答案

    1. **输入处理**:通过扫描程序检测外部事件,如用户摘机、局间多频(MFC)信号等。扫描过程中收集的数据是后续接续操作的基础。 2. **内部处理**:这一阶段包括数字分析、路由选择和通路选择等步骤。这些操作通常...

Global site tag (gtag.js) - Google Analytics