wordpress注明网站,广州企业网站建设公司哪家好,襄阳电商网站建设,做a小视频免费观看网站8.1 搬移函数 模块化是优秀软件设计的核心所在#xff0c;好的模块化能够让我在修改程序时只需理解程序的一小部分。为了设计出高度模块化的程序#xff0c;我得保证互相关联的软件要素都能集中到一块#xff0c;并确保块与块之间的联系易于查找、直观易懂。同时#xff0c…8.1 搬移函数 模块化是优秀软件设计的核心所在好的模块化能够让我在修改程序时只需理解程序的一小部分。为了设计出高度模块化的程序我得保证互相关联的软件要素都能集中到一块并确保块与块之间的联系易于查找、直观易懂。同时我对模块设计的理解并不是一成不变的随着我对代码的理解加深我会知道那些软件要素如何组织最为恰当。要将这种理解反映到代码上就得不断地搬移这些元素。 任何函数都需要具备上下文环境才能存活。这个上下文可以是全局的但它更多时候是由某种形式的模块所提供的。对一个面向对象的程序而言类作为最主要的模块化手段其本身就能充当函数的上下文通过嵌套的方式外层函数也能为内层函数提供一个上下文。不同的语言提供的模块化机制各不相同但这些模块的共同点是它们都能为函数提供一个赖以存活的上下文环境。 搬移函数最直接的一个动因是它频繁引用其他上下文中的元素而对自身上下文中的元素却关心甚少。此时让它去与那些更亲密的元素相会通常能取得更好的封装效果因为系统别处就可以减少对当前模块的依赖。 同样如果我在整理代码时发现需要频繁调用一个别处的函数我也会考虑搬移这个函数。有时你在函数内部定义了一个帮助函数而该帮助函数可能在别的地方也有用处此时就可以将它搬移到某些更通用的地方。同理定义在一个类上的函数可能挪到另一个类中去更方便我们调用。
决定越难做通常说明“搬移这个函数与否”的重要性也越低。
8.6 移动语句 让存在关联的东西一起出现可以使代码更容易理解。如果有几行代码取用了同一个数据结构那么最好是让它们在一起出现而不是夹杂在取用其他数据结构的代码中间。最简单的情况下我只需使用移动语句就可以让它们聚集起来。此外还有一种常见的“关联”就是关于变量的声明和使用。有人喜欢在函数顶部一口气声明函数用到的所有变量我个人则喜欢在第一次需要使用变量的地方再声明它。 通常来说把相关代码搜集到一处往往是另一项重构通常是在提炼函数106开始之前的准备工作。相比于仅仅把几行相关的代码移动到一起将它们提炼到独立的函数往往能起到更好的抽象效果。但如果起先存在关联的代码就没有彼此在一起那么我也很难应用提炼函数106的手法。