`
gdpglc
  • 浏览: 93709 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论

子程序(方法、函数)设计要点(2009-02-23 10:13)

阅读更多
1. 以重用为基本设计目标。目的并不是重用而是为了提高软件代码质量。这样当然对重用会有益,不过我认为,能够被重用的内容是综合考虑用例的共性而特意设计出来的功能(也许设计时并不能这样做,但也可以通过重构而得到重用的效果,前提是原来的代码设计优良所以容易调整。)。而不是这里说的在功能即定的情况下再考虑重用。在种情况下特定的功能也许只存在于特定的逻辑中,而不会得到重用。但仍要按重用进行设计,原因是它会导致优良的接口定义和实现。
2.子程序内不对子程序外有任何假定。以重用为设计目标的子程序将自然的达到这个要求。
3.针对接口编程而不是针对内容编程。附合以上两点的子程序将自然的达到这个要求。
4.高内骤低耦合。附合以上3点的程序将自然的达到这个要求。
5.子过程设计的终极目的,降低软件复杂度。仅以以上4个标准可能导出的结果是多个的,或并不能理想的附和这个标准的,再以这个标准进行取舍或调整。

这里有些要点虽然侧重点不同,但是基本是等效的。因此实际应用中,通常只考虑1和5就够了。
分享到:
评论

相关推荐

    VisualBasic程序设计形考1-5全答案.zip

    - 菜单项(ToolStripMenuItem):创建菜单项,可以链接到不同的函数或子程序。 - 事件驱动编程:当用户选择某个菜单项时,触发相应的事件处理代码。 4. **实验7:绘制图形程序** 这个实验引导学生利用VB的图形...

    Visual Basic 2012 Programmer's Reference VB2012程序员参考手册

    - **概述**:讲解子程序和函数的定义、调用方法及其在程序中的作用。 - **知识点**: - 子程序和函数的区别及其适用场景。 - 参数传递的方式和注意事项。 - 函数返回值的类型及其处理技巧。 **第17章:程序控制...

    C编码指南

    #### 六、函数设计 **6.1 参数的规则** - **数量**:避免过多参数。 - **类型**:选择合适的类型。 - **示例**:`void myFunction(int param1, float param2);` **6.2 返回值的规则** - **明确性**:确保返回值...

    100家企业iOS招聘需求整理

    - **消息传递**:方法调用的机制。 ### 65. Swift语言特点 - **类型推断**:自动推断变量类型。 - **模式匹配**:用于检查和提取值的模式。 通过以上知识点的总结,可以看出这些内容涵盖了iOS开发的核心技术点,...

    java最新面试宝典

    - 程序计数器的作用。 - 虚拟机栈的特性。 - 本地方法栈的功能。 - 堆内存的分配策略。 - 方法区与元空间的存储机制。 - 运行时常量池的使用。 - **面试考察要点:** - 内存溢出与内存泄漏的区别。 - GC算法...

    软件测试经典试题

    - 函数或方法的正确性。 - 边界条件。 - 错误处理。 #### 33. 集成测试内容 - **内容**: - 模块间接口。 - 数据传递。 - 控制流。 #### 34. 集成测试与系统测试的关系 - **关系**: - 集成测试关注模块间...

    高质量C++编程

    - **知识点**: 函数返回值的设计原则。 - **实践**: 明确函数的返回类型,并确保返回值的正确性。 **6.3 函数内部实现的规则** - **知识点**: 函数内部逻辑的编写规范。 - **实践**: 遵循单一职责原则,一个函数只...

    嵌入式系统设计课程设计题目参考

    ### 嵌入式系统设计课程设计题目解析 #### 一、嵌入式系统课程设计概述 嵌入式系统设计是一门理论与实践紧密结合的课程,它不仅要求学生掌握嵌入式系统的理论基础,还需要具备一定的动手能力。为了加深对嵌入式...

    编译原理—pl0实验报告.doc

    3. **子程序分析**:对每个子程序和函数进行详细分析,包括代码结构、程序流程、所采用的算法以及其实现的具体功能。 4. **撰写报告**:完成实验报告,报告中应包含系统结构框图、模块间接口设计、关键算法介绍以及...

    无感无刷直流电机设计全攻略-timegate网友.pdf

    本文详细介绍了无感无刷直流电机及其电调的设计原理和技术要点,覆盖了从电机基础理论到具体电路设计、软件实现等多个方面。通过深入浅出的讲解,旨在帮助初学者快速掌握无刷电机及其电调的基本知识,同时也为进阶...

    大连理工大学数据结构复习要点

    ### 大连理工大学数据结构复习要点 #### 一、复杂度分析 - **定义**:在计算机科学中,算法的时间复杂度和空间复杂度是用来衡量算法执行效率的重要指标。 - **时间复杂度**:指执行算法所需要的计算工作量。常用的...

    IDL培训教材

    - **IDL程序:** 包括主程序和子程序,可以实现复杂的数据处理任务。 - **过程和函数的区别:** 过程没有返回值,主要用于执行一系列操作;函数有返回值,通常用于计算或返回数据。 #### 三、IDL语法基础 - **...

    prototype1.5.1 英文版

    Prototype 是一个旨在简化动态 Web 应用程序开发的 JavaScript 框架。它由 Sam Stephenson 创建,并于 2005 年 2 月作为开源项目发布。自那时起,Prototype 已成为 Ajax 开发的基石之一,为开发者提供了强大的功能...

    EDA考试题目复习重点

    #### 电路VHDL设计要点 - **不完整的IF语句与时序描述**: - IF语句常用于实现复杂的时序控制逻辑。 - **边沿检测**: - 上升沿、下降沿和电平触发等。 - **信号与变量的区别**: - **信号**: 代表物理连线。 - **...

    《算法设计与分析》期末必考复习及答案题整理.doc

    ### 《算法设计与分析》期末必考复习知识点解析 #### 一、基本概念与原理 **1....- **定义**: 分治法是一...以上知识点是《算法设计与分析》课程中重要的理论基础和技术要点,对于深入理解和掌握算法设计具有重要意义。

    linux操作系统下c语言编程入门

    Linux程序设计入门—基础知识 - **源程序编译** - 在Linux中,通常使用`gcc`作为C语言的编译器。 - 示例:将一个简单的C语言程序(`hello.c`)编译成可执行文件。 ```shell gcc -o hello hello.c ``` - 命令...

    SQL优化经验总结34条.pdf

    - **要点**: 最高效的方法是使用ROWID来删除重复记录。 - **实践**: 示例代码如下所示: ```sql DELETE FROM EMP E WHERE E.ROWID > (SELECT MIN(X.ROWID) FROM EMP X WHERE X.EMP_NO = E.EMP_NO); ``` #### 九...

Global site tag (gtag.js) - Google Analytics