`
biqing0427
  • 浏览: 57275 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Making Method Calls Simper(简约函数调用)

阅读更多

1、Rename  Method  重新命名函数

  •  函数的名称未能揭示函数的用途。
  •  修改函数名称。
  • 考虑应该给这个函数写上一句怎样的注释,然后想办法讲注释编程函数的名称。

2、Add Parameter  添加函数

  • 某个函数需要从调用端得到更多信息。
  • 尽量不要增加参数,有可能带来坏味。

3、Remove Parameter

  • 不去掉多余参数,让调用者多费一份心。

4、Separate Qrevy From Modifier  将查询函数和修改函数分离

  • 某个函数既返回对象状态值,又修改对象状态(State)。
  • 建立两个不同的函数,其中一个负责查询,另一个负责修改。

5、Paraterice Method  令函数携带参数

  • 参数的作用为提供变化的接口,可变的东西。
  • 若干函数作了类似的工作,但在函数本体中却包含了不同的值。
  • 建立单一函数,以参数表达那些不同的值。

6、Replace  Pararmeter With Explicit Methods   以明确函数取代参数

  • 函数完全取决于参数值而采取不同反应,这里可以理解为不同的动作行为。
  • 以明确函数取代参数,可以将不同的业务类型提取出来。
  • 还要看和上层的接口定义。
  • 如果以参数值觉得函数行为,那么函数用户不但需要观察该函数,而且还要判断参数值是否合法。

7、Preserve Whole Object   保持对象完整

  • 参数过多,而且都来自同一个对象,那么将整个对象传入。
  • 可以使参数列更稳固,不变化。
  • 提供代码的可读性。
  • 如果该对象原本与该函数没有依赖关系,这样容易破坏层次关系。

8、Replace  Pararmeter With Methods   以明确函数取代参数

  • 接受该参数的函数也可以调用前一个函数,让参数接受存者去除该项参数,并直接调用前一个函数。
  • 如果调用端通过“其所属对象内部的另一个函数”来计算参数,并在计算过程中“未曾引用调用端的其他参数”,那么你就应该可以将这个计算过程转移到被调用端内,从而去除该项参数。

9、Remove Setting Method    移除设值函数

  • CLASS中某个值域,应该在对象初创时被设值,然后就不再改变,去掉该值域的所有设值函数(Setter)。
  • 如果为某个值域提供了Setter,这就暗示了这个值域可以被改变。
  • 如果Subclass需要对Superclass的Private变量赋初值,解决方法就是使用Superclass构造函数。

10、Replace Constructor  With Factory Method   以“工厂模式”取代构造函数

  • 简化创建过程,封装创建逻辑。
  • 在Subclassing过程中以Factory Method取代type code。
  • 在父类中提供了子类的创建过程,不用额外类说明,而且类型一致。

11、Replace Error Code With Exception   以异常取代错误码

  • 对于大多数正常情况下做错误判断,显得多余。
  • 某个函数返回一个特定的代码(Special  Code),以表示某种错误情况,改用异常(Exception)。
  • 这种方式更好地将“普通程序”和“错误处理”分开了,使得程序更容易理解。

12、Replace Exception  With  Test   以测试取代正常

  • 面对一个“调用者可预先加以检查”的条件,抛出一个异常,修改调用者,使它在调用函数之前先做检查。
分享到:
评论

相关推荐

    AsyncCalls(异步调用函数)

    "AsyncCalls"是Delphi中一个专门用于实现异步调用功能的单元,它包含了一系列的函数和类,帮助开发者轻松地创建非阻塞的异步操作。通过这个单元,我们可以避免因为等待某个操作完成而导致程序冻结的情况,提高应用...

    函数及函数调用_functioncalls_Functions_

    在编程领域,函数是代码组织的基本单元,它们封装了特定的功能,可以被多次调用,降低了代码的复杂性,提高了可重用性。本主题主要围绕"函数及函数调用"这一核心概念展开,旨在帮助你理解并掌握如何在程序中定义和...

    log-calls:在 JavaScript 中记录函数调用

    记录函数调用。 安装 通过 git 从 github 下载最新版本: git clone https://github.com/sttts/log-calls.git 或使用 : npm install log-calls 或使用 for Titanium: gittio install log-calls 用法 要使用 ...

    db2调自定义函数(小例)

    这些自定义函数允许开发者利用C、C++或Java等语言编写特定的业务逻辑,并将其作为内置函数一样在SQL查询中调用。本文将深入探讨如何在DB2中创建和调用自定义函数,通过具体的示例代码,展示这一过程的关键步骤。 ##...

    五年级英语上册 Unit4 Making Phone Calls Lesson7教案 闽教版.doc

    五年级英语上册 Unit4 Making Phone Calls Lesson7教案 闽教版.doc

    Oracle Solaris 9 man pages section 2: System Calls-358

    在 System Calls 部分,我们可以看到许多有用的函数调用,例如 fork()、exec()、wait() 等,这些函数调用是操作系统提供的基本功能,应用程序可以通过这些函数调用来完成各种任务。 1. fork() 函数调用:fork() ...

    五年级英语上册 unit4 Making Phone Calls Lesson8教案 闽教版.doc

    【五年级英语上册 Unit4 Making Phone Calls Lesson8教案 闽教版】 本教案主要针对五年级学生,旨在教授他们在英语中如何进行电话通话。课程主题为“Making Phone Calls”,重点学习词汇“telephone”和“moon cake...

    PowerPC Function Calls

    PowerPC架构的函数调用与大多数CISC(如x86)处理器的调用方法不同。CISC处理器通常依赖堆栈来传递参数、保存临时变量和存储返回地址,而PowerPC运行时架构则采取了不同的策略。在PowerPC的运行时模型中,无论使用哪...

    虚函数分析论文

    因为编译器在处理虚函数调用时,需要通过虚函数表(vtable)来确定应该调用哪个方法,这一过程相比于直接调用静态函数会有额外的时间消耗。此外,随着程序员对面向对象编程优势的了解加深,使用虚函数的情况将越来越...

    PyPI 官网下载 | calls-0.1.1.tar.gz

    首先,calls库是一个用于记录和分析函数调用的工具,它允许开发者追踪代码执行过程中的函数调用,包括调用参数、返回值和执行时间等信息。这对于调试复杂代码或优化性能至关重要,因为你可以清晰地看到函数间的调用...

    重构_改善既有代码的设计

    第 10 章:简化函数调用(Making Method Calls Simpler) 第 11 章:处理概括关系(Dealing with Generalization) 第 12 章:大型重构(Big Refactorings, by Kent Beck and Martin Fowler) 第 13 章:...

    highlight-function-calls:在 Emacs 中突出显示函数宏调用

    高亮函数调用 这个包在函数调用中突出显示函数符号。 这使它们从其他符号中脱颖而出,从而可以轻松查看对其他函数的调用位置。 它还有助于减少拼写错误,因为当您输入函数名称时,如果输入正确,它会带有下划线。 ...

    Remote Function Calls in ABAP

    RFC是一种标准化的接口技术,使得ABAP程序能够调用远程系统中的函数模块,就像它们是本地函数模块一样。这在分布式系统环境中特别有用,因为它提供了数据和业务逻辑的共享能力,无需深入理解底层通信协议。通过RFC,...

    CSharp-calls-JAVA-program.rar_C#调用java的dll_c# 调用 java sdk_c#调用ja

    本文将详细介绍如何在C#环境中调用Java程序,通过使用Java的DLL和SDK,实现C#与Java之间的通信。我们将探讨以下几个关键知识点: 1. **P/Invoke(Platform Invoke)**:C#中的P/Invoke是.NET框架提供的一种机制,...

    有关如何调用函数的注意事项

    文件"A-Note-on-How-Functions-Are-Called.pdf"和"how-function-calls-are-made.zip"可能包含了更详细的关于函数调用实现的分析和示例代码。而"a-simple-c-function-call.zip"可能包含一个简单的C语言函数调用示例,...

    (calls.zip) calls.tar.Z

    首先,"calls"工具的核心功能在于记录和分析程序运行过程中的系统调用。系统调用是操作系统提供给用户态程序的一个接口,通过这些调用,程序可以请求操作系统执行如打开文件、创建进程等任务。calls工具能够捕获这些...

Global site tag (gtag.js) - Google Analytics