重构——52隐藏函数(Hide Method)

隐藏函数(Hide Method)

有一个函数,从来没有被其它任何类用到;将这个函数改为private

一、动机

提高函数可见度容易,降低稍微困难一些

二、做法

1、经常检查有没有可能降低某个函数的可见度

2、尽可能降低所有函数的可见度

3、没完成一组函数的隐藏之后,编译并测试

时间: 2024-09-24 07:09:21

重构——52隐藏函数(Hide Method)的相关文章

代码重构(一):函数重构规则

重构是项目做到一定程度后必然要做的事情.代码重构,可以改善既有的代码设计,增强既有工程的可扩充.可维护性.随着项目需求的不断迭代,需求的不断更新,我们在项目中所写的代码也在时时刻刻的在变化之中.在一次新的需求中,你添加了某些功能模块,但这些功能模块有可能在下一次需求中不在适用.或者你因为需求迭代与变更,使你原有的方法或者类变得臃肿,以及各个模块或者层次之间耦合度增加.此时,你要考虑重构了.   重构,在<重构,改善既有代码的设计>这本经典的书中给出了定义,大概就是:在不改变代码对外的表现的情况

EXCEL2010隐藏函数Phonetic

EXCEL2010有许多隐藏函数,其中有一个隐藏函数Phonetic,它的用处是把指定区域内的文本链接起来合成一个.隐藏函数Phonetic比Concatenate函数要好用.隐藏函数Phonetic可以把多个文本字符串合并为一个文本字符串,隐藏函数Phonetic的语法是Phonetic (text1,text2,...),一共可以串起30个文本串. 隐藏函数Phonetic是在日文版EXCEL2010中使用的,但是在中文版EXCEL2010中照样可以使用,隐藏函数Phonetic需要指定的单

重构——14隐藏“委托关系”(Hide Delegate)

隐藏"委托关系"(Hide Delegate) 客户通过一个委托类来调用另一个对象:在服务类上建立客户所需的所有函数,用以隐藏委托关系 一.动机 1.封装意味着每个对象都应该尽量少的了解系统的其它部分,如此一来,一旦发生变化,需要了解这一变化的对象就会比较少--这会使变化容易进行 2.减少对象依赖 二.做法 1.对于每一个委托关系中的函数,在服务对象端建立一个简单的委托函数 2.调整客户,令它只调用服务对象提供的函数 3.每次调整后,编译并测试 4.如果将来不再有任何客户需要取用Del

重构——1提炼函数(Extract Method)

提炼函数(Extract Method) 你有一段代码可以被组织在一起并独立出来,将这段代码放进一个独立的函数中,并让函数名称解释该函数的用途. 一.动机 1.每个函数的粒度都小,那么被复用的几率就大 2.函数的长度不是问题,关键在于函数名称和函数本体之间的语义距离 3.使高层函数读起来向一系列注释 4.如果函数都是细粒度,那么函数覆盖也会更容易些 二.做法 1.创建函数,名字要起好 2.转移代码 3.检查提炼出的代码是否引用了作用域限于原函数的变量(临时变量和源函数参数) 4.检查是否有任何的

重构——8以函数对象取代函数(Replace Method with Method Object)

以函数对象取代函数(Replace Method with Method Object) 有一个大型函数,其中对局部变量的使用使你无法采用Extract Method.将这个函数放进一个单独的对象里中,如此一来局部变量就成了对象内的字段,然后你就可以在同一个对象中将这个大型函数分解为多个小型函数 一.动机 1.小函数优美动人,只要将相对独立的代码从大型函数中提炼出来,就可以大大提高代码的可读性 2.局部变量的存在会增加函数分解难度.如果一个函数之中局部变量泛滥成灾,那么想分解这个函数是非常困难的

重构——46令函数携带参数(Parameterize Method)

令函数携带参数(Parameterize Method) 若干函数做了类似的工作,但在函数本体中却包含了不同的值:建立单一函数,以参数表达那些不同的值 一.动机 去除重复代码,提高灵活性 二.做法 1.新建一个带有参数的函数,使它可以替换先前所有的重复性函数 2.编译 3.将调用旧函数的代码改为调用新函数 4.编译,测试 5.对所有旧函数重复上述步骤,每次替换后,修改并测试

关于C#和C++的重载(Overload)、隐藏(Hide)、覆盖(Override)几个区别比较和得出的疑问

c++|比较|区别 这里只谈函数(方法)重载,C#独有的属性重载不在讨论之内. 1. Overload:     基本上一致,C#多出了ref.out相关的,C++多出了const(指针和引用时)相关的. 2. Hide:     C#引入new:     C++一般情况下类似,派生类会按名称隐藏基类的方法除外.(后面提供解释)    3. Override:     C#引入override,不能省略(缺省为new),不能更改访问控制:     C++能且只能省略virtual(当然是指定义时

Excel中隐藏函数Get.Cell的用法

Excel中有一些隐藏的函数,能够实现一些现有的函数无法实现的功能.其中一个很重要的函数就是Get.Cell.Get.Cell翻译过来也就是"得到单元格"的意思,作用是返回单元格中的格式信息. 函数定义: Get.Cell(类型号,单元格(或范围)) 其中类型号,即你想要得到的信息的类型号,经试验,范围为1-66,也就是说这个函数可以返回一个单元格里66种信息. 以下是类型号及代表的意思 1--参照储存格的绝对地址 2--参照储存格的列号 3--参照储存格的栏号 4--类似 TYPE

Object对象的一些的隐藏函数介绍

object|对象|函数 属性:Object.constructor 该属性被定义在类的prototype中,当对象实例创建后通过__proto__链可被对象实例所调用,并指向当前类的构造函数.以此可判断某个对象直接所属的类是哪个(与instanceof不同,instanceof并不局限于对象直接所属的类,即使是父类也返回true). [示例]trace(Object.prototype.constructor == Object);  //输出 truevar a = new Object()