上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 25 下一页
摘要: 【1】场景 你需要为提供服务的类增加一个函数,但你无法修改这个类。在客户类中建立一个函数,并以第一参数形式传入一个服务类实例。 【2】动机 2.1 如果真的用心体会过,这种事情应该发生太多次了。你正在使用一个类,它真的很好,为你提供了需要的所有服务。 而后,你又需要一项新服务,这个类却无法供应。于是 阅读全文
posted @ 2017-08-11 11:03 kaizenly 阅读(471) 评论(0) 推荐(0) 编辑
摘要: 【1】移除中间人 该手法和[2.5 隐藏委托关系] 正好相反。正是由于相反,才能够在实际的应用中进行灵活的变通。 可能一些委托关系需要保留,而另一些却需要移除,让客户直接使用受托对象。这些都是可以随之变通的。 对于各种不同重构手法的使用,同样没有绝对的规定,都是需要依据实际灵活使用的。真所谓“唯变通 阅读全文
posted @ 2017-08-11 10:53 kaizenly 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 【1】源代码 【2】隐藏委托关系 【3】总结 客户通过一个委托类来调用另一个对象。 在服务类上建立客户所需的所有函数,用以隐藏委托关系。 Good Good Study, Day Day Up. 顺序 选择 循环 总结 阅读全文
posted @ 2017-08-11 10:43 kaizenly 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 【1】将类内联化 将类内联化与提炼类方法相反。请参见《2.3提炼类》 【2】总结 如果某个类没有做太多事情,将这个类中的所有特性移到另外一个类中,然后删除原类。 Good Good Study, Day Day Up. 顺序 选择 循环 总结 阅读全文
posted @ 2017-08-11 09:31 kaizenly 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 【1】源代码 【2】提炼类 【3】总结 某个类做了应该由两个类做的事。建立一个新类,将相关的字段和函数从旧类搬移到新类。 Good Good Study, Day Day Up. 顺序 选择 循环 总结 阅读全文
posted @ 2017-08-11 09:24 kaizenly 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 【1】源代码 【2】搬移字段 【3】总结 程序中,某个字段被其所驻类之外的另一个类更多的用到。在目标类新建一个字段,修改源字段的所有用户,令他们改用新字段。 如果发现,对于一个字段,在其所驻类之外的另一个类中有更多函数使用了它,我就会考虑搬移这个字段。 Good Good Study, Day Da 阅读全文
posted @ 2017-08-10 19:48 kaizenly 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 【1】源代码 【2】搬移函数 【3】总结 在程序中,如果有个函数与其所驻之类的另外一个类进行更多交流,调用后者或被后者调用。 在该函数最常引用的类中建立一个有着类似行为的新函数。 将旧函数变成一个单纯的委托函数,或将旧函数完全移除。 Good Good Study, Day Day Up. 顺序 选 阅读全文
posted @ 2017-08-10 19:30 kaizenly 阅读(1024) 评论(0) 推荐(0) 编辑
摘要: 【1】源代码 【2】替换算法 【3】总结 想要把某个算法替换为另一个更清晰的算法。将函数本体替换为另一个算法。 Good Good Study, Day Day Up. 顺序 选择 循环 总结 阅读全文
posted @ 2017-08-10 18:44 kaizenly 阅读(447) 评论(0) 推荐(0) 编辑
摘要: 【1】源代码 【2】以函数对象取代函数 【3】总结 有一个大型函数,其中对局部变量的使用使你无法采用[1.1提炼函数]。 将这个函数放进一个单独对象中,如此一来局部变量就成了对象内的字段。 然后,你可以在同一个对象中将这个大型函数分解为多个小型函数。 Good Good Study, Day Day 阅读全文
posted @ 2017-08-10 17:44 kaizenly 阅读(660) 评论(0) 推荐(0) 编辑
摘要: 【1】源代码 【2】移除对参数的赋值动作 【3】总结 代码对一个参数进行赋值。以一个临时变量取代该参数的位置。 Good Good Study, Day Day Up. 顺序 选择 循环 总结 阅读全文
posted @ 2017-08-10 17:11 kaizenly 阅读(425) 评论(0) 推荐(0) 编辑
摘要: 【1】源代码 【2】分解临时变量 【3】总结 有某个临时变量被赋值超过一次,它既不是循环变量,也不被用于收集计算结果。针对每次赋值,创造一个独立、对应的临时变量。 Good Good Study, Day Day Up. 顺序 选择 循环 总结 阅读全文
posted @ 2017-08-10 16:18 kaizenly 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 【1】源代码 【2】引入解释性变量 【3】总结 程序中有一个复杂表达式。将该复杂表达式(或其中一部分)的结果放进一个临时变量,以此变量名称来解释表达式用途。 Good Good Study, Day Day Up. 顺序 选择 循环 总结 阅读全文
posted @ 2017-08-10 16:00 kaizenly 阅读(583) 评论(0) 推荐(0) 编辑
摘要: 【1】源代码 【2】以查询取代临时变量 【3】总结 以一个临时变量保存某一表达式的运算结果。将这个表达式提炼到一个独立函数中。 将这个临时变量的所有引用点替换为对新函数的调用。此后,新函数就可以被其他函数使用。 Good Good Study, Day Day Up. 顺序 选择 循环 总结 阅读全文
posted @ 2017-08-10 15:29 kaizenly 阅读(653) 评论(0) 推荐(0) 编辑
摘要: 【1】源代码 【2】将临时变量内联化 【3】总结 有一个临时变量,只被一个简单表达式赋值一次,而它妨碍了其他重构手法。将所有对该变量的引用动作,替换为对它赋值的那个表达式自身。 Good Good Study, Day Day Up. 顺序 选择 循环 总结 阅读全文
posted @ 2017-08-10 14:53 kaizenly 阅读(472) 评论(0) 推荐(0) 编辑
摘要: 【1】源代码 【2】函数内联化 【3】总结 一个函数的本体与名称同样清楚易懂。在函数的调用点插入函数本体,然后移除该函数。 Good Good Study, Day Day Up. 顺序 选择 循环 总结 阅读全文
posted @ 2017-08-10 14:38 kaizenly 阅读(812) 评论(0) 推荐(0) 编辑
摘要: 【1】源代码 把一个unsigned long long型数值格式转换为时间格式。 【2】提炼函数 【3】编译测试 【4】总结 有一段代码可以被组织在一起并独立出来,将这段代码放进一个独立函数中,并让函数名称解释该函数的用途。 Good Good Study, Day Day Up. 顺序 选择 循 阅读全文
posted @ 2017-08-10 14:20 kaizenly 阅读(459) 评论(0) 推荐(0) 编辑
摘要: 【1】mouseTracking 追踪鼠标的标志位 作用:保存窗口部件默认是否接收鼠标移动事件。此成员变量在QWidget类中。 【2】Qt Assistant 解释 翻译如下: 这个属性保存部件窗口是否追踪鼠标。 如果部件窗口不(默认值)追踪鼠标,那么,当鼠标在部件窗口内移动时候,只有鼠标按键在至 阅读全文
posted @ 2017-07-13 20:27 kaizenly 阅读(1285) 评论(0) 推荐(0) 编辑
摘要: 【1】BUG简单示例代码 主要代码如下: 注意:宏、宏展开、函数调用的结果差异。 用宏计算时,宏中的参数由前至后赋值。 逐步分析:调用func(a1),调用结束后,宏的第一个参数值为1(即函数返回值),同时由于func为引用形参,a1此时值为110; 宏的第二个参数值为a1 + 10 = 120;宏 阅读全文
posted @ 2017-07-13 16:13 kaizenly 阅读(888) 评论(0) 推荐(0) 编辑
摘要: samba连接,用户名密码均正确。失败提示:不允许一个用户使用一个以上用户名与一个服务器或共享资源的多重连接。 事实上,这个不是samba的限制。是Windows的限制。 在打开存在public = yes 的samba服务器时。 当首次点击有public = yes 的共享资源的时,widows会 阅读全文
posted @ 2017-07-06 14:24 kaizenly 阅读(2940) 评论(0) 推荐(0) 编辑
摘要: 【1】为什么需要自定义数据类型? 内置类型毕竟很有局限性,否则为什么还需要类呢。总之,有时候,我们多么希望信号能发送自定义数据类型。 幸哉~ Qt是支持自定义信号,且自定义信号可以发送自定义数据类型的对象。 【2】使用方法(声明 和 注册自定义数据类型) 1)引入头文件:#include<QMeta 阅读全文
posted @ 2017-06-27 22:47 kaizenly 阅读(12171) 评论(0) 推荐(0) 编辑
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 25 下一页
打赏