重构-读书笔记二

作者: 撒哈拉的海马_敏捷 | 来源:发表于2017-12-15 20:18 被阅读11次

重构第七章主要说的是在对象之间搬移特性

先说自己的感受,这个是在面向对象设计期间非常重要而且不好把握的地方,具体的责任应该放在哪里,是对象设计的关键,也是难点。

我们可以简单的使用Move Method和Move Field,虽然这两个重构方法很简单,但这个是针对对象搬移特性方法的基础,是明确责任的开始。

Move Method

Move Method的关键是判断此函数和那个对象的交流比较多,那么此函数就应该被搬移到这个对象中。具体的做法:

1、关注此函数中引导源类中的所有特性(成员变量和方法),考虑是否要一并迁移

2、决定从源函数如何引用目标对象

3、决定是否删除源函数,或是建立一个委托的函数(建立委托函数的好处是减少调用对象的依赖关系暴露,并且在后续的新需求改造中不会产生目标对象暴露给用户而是重构更加困难)

4、迁移的函数如果引用源类的特性,可以直接作为参数传入,如果多个特性那么可以直接传入源对象。

Move Field

做法,简单说就是,在目标类中新建一个字段,修改原字段的所有用户,令它们改用新的字段。

切记缩小属性的访问级别。

Extract Class

建立一个新类,将相关的属性和函数从源类迁移到新的类中,这里的关键是如何分解源类,在确定后,可以使用Move method 和 move field重构方法来一步一步实施。

Hide Delegate(隐藏委托关系)

做法:对于每一个委托关系中的函数,在服务对象端建立一个简单的委托函数。

比如:书中的范例

Person 类中有一个 Department成员变量,标示用户所属部门的相关信息。此时我们如果要获取员工所属组织单元的leader,现在有两种方式。

第一种:

new Person().getDeparment().getManager();

第二种(隐藏委托关系)

new Person().getManager();

getManager() {

department.getManager();

}

两种关系看似没有什么区别,但是当department变化时就会引起巨大的差别。

假设这样,我们以前的组织架构方式面向的大资源池的方式(面向组件),开发部,测试部,设计部门等,为了更快的响应市场变化,按片区来划分bg。

此时这种变化势必会对department的形式和组织方式以及其他的一些规则引起变化。

此时可能department这个对象都不在了,或是pg的领导也不叫manager了,那么调用者此时根据获取到的department对象势必会是多余并不可靠的。

而通过隐藏委托关系,暴露方法,变化尽在person类中发生,我们就降低了影响范围。

相关文章

  • 重构:读书笔记

    重构读书笔记 第一章 重构,第一个案例 第二章 重构原则 2.1 何为重构 重构(名词):对软件内部结构的一种调整...

  • 《重构》读书笔记

    《重构》读书笔记 总览 第一部分 第一章从实例程序出发,展示设计的缺陷,对其重构可以了解重构的过程和方法。 第二部...

  • 重构-读书笔记二

    重构第七章主要说的是在对象之间搬移特性 先说自己的感受,这个是在面向对象设计期间非常重要而且不好把握的地方,具体的...

  • 代码重构专题(转载)

    代码重构(一):函数重构规则代码重构(二):类重构规则代码重构(三):数据重构规则代码重构(四):条件表达式重构规...

  • 重构读书笔记

    title: 重构读书笔记date: 2019/11/05 重构:对软件内部结构的一种调整,目的是在不改变软件可观...

  • 《重构2》读书笔记(二)

    在《重构》第二版发售前,有幸获得了抢先体验的资格,现把阅读过程中的一些心得和一些书摘整理下来。 重构的原则 何谓重...

  • 3月份读书打卡第8次

    【书目】《语文教学设计:优化与重构》 张秋玲著,教育科学出版社 【进度】第262—289页 【读书笔记】 第二讲 ...

  • 《重构》一书总结(二)

    《重构》一书总结(二) 重构的重点,在于对那些代码进行重构,如果重构不当,反而适得其反。 重构代码终结如下 1.D...

  • 把《重构》变成工具书

    前言一、把它变成工具书二、概述何谓重构注释为何重构何时重构重构、架构和YAGNI重构与软件开发过程重构与性能如何重...

  • 《危机与重构:唐帝国及其地方诸侯》读书笔记

    《危机与重构:唐帝国及其地方诸侯》读书笔记 李碧妍先生的《危机与重构:唐帝国及其地方诸侯》一书。是以唐代后期的藩镇...

网友评论

    本文标题:重构-读书笔记二

    本文链接:https://www.haomeiwen.com/subject/yzzdwxtx.html