代码重构
豆豆里有大白兔
我的小鱼你醒了,还认识早晨吗?昨夜你曾经说,愿夜幕永不开启。你的香腮边轻轻滑落的,是你的泪,还是我的泪?初吻吻别的那个季节,不是已经哭过了吗?我的指尖还记忆着,你慌乱的心跳。温柔的体香里,那一缕长发飘飘。
展开
-
【重构笔记】重构手法之重新组织方法
重新组织函数包括Extract Method(提炼函数)和Inline Method(内联函数)1 Extract Method【起因】:LongMethods(过长函数),包含太多信息,这些信息又被错综复杂的逻辑掩盖,不易鉴别【难点】:处理局部变量【步骤】:·运用Replace Temp with Query(以查询取代临时变量)去掉所有可去掉的临时变量·如果很多地方使用原创 2014-04-16 13:24:41 · 564 阅读 · 0 评论 -
【重构笔记】重构手法之重新组织数据
1 Self Encapsulate Field(自封装字段):如果你直接访问一个字段后与字段之间的耦合关系变得笨拙,那么封装这个字段。间接访问变量的好处:子类可以通过覆写一个函数而改变获取数据的途径,还可以实现延迟初始化(在用到的时候才对变量初始化)直接访问变量的好处:代码简单易于阅读。在变量所在类中是否使用间接访问,说法不一。如果你想访问超类中的一个字段,而且想在子类中对这个变量修原创 2014-04-16 16:29:42 · 786 阅读 · 0 评论 -
【重构笔记】重构与代码的坏味道
一)重复代码 1 同一个类的两个函数含有相同的表达式→提炼重复的代码,让两个地方调用提炼出来的代码 2 两个互为兄弟的子类内含相同表达式→提炼重复代码,创建超类二)过长函数 每当感觉需要以注释来说明点什么的时候,需要把说明的东西写进一个独立函数中,并以其用途命名三)过大的类四)过长参数列(依恋情结) 有了对象,你就不需要把所有的参数传递进去了,函原创 2014-04-16 13:10:52 · 607 阅读 · 0 评论 -
【重构笔记】重构手法之简化条件表达式
1 Decompose Conditional(分解条件表达式):从if,then,else三个段落中分别提炼出独立函数2 Replace Nested Conditional with Guard Clauses(以卫语句取代嵌套条件表达式)3 Replace Conditional with Polymorphism(以多态取代条件表达式):如果有个条件表达式,它根据对象类型的不同而选原创 2014-04-16 16:32:29 · 644 阅读 · 0 评论 -
【重构笔记】重构手法之对象间搬移特性
1 Move Method(搬移函数):如果有个函数与其所在类之外的另一个类有更多的交流,那么在该类中建立一个有着类似行为的新函数,把旧函数变成一个单纯的委托函数或是直接移除。这是松耦合设计模式的一种实现。2 Move Field(搬移字段):如果某个字段被另外一个类更多的用到,那么在目标类新建一个字段,源字段所有用户改用新字段。3 Extract Class(提炼类)和Inline Cl原创 2014-04-16 16:20:54 · 531 阅读 · 0 评论 -
处理继承关系
1 Pull Up Field(字段上移):两个子类拥有相同的字段,将该字段移至超类2 Pull Up Method(函数上移)3 Pull Up Constructor Body(构造函数本地上移):你在各个子类中拥有一些构造函数,他们的本地几乎一致,在超类中新建一个构造函数,并在子类构造函数中调用它。4 Push Dowm Method(函数下移):超类中的函数只与部分函数有关,则原创 2014-04-16 16:46:25 · 552 阅读 · 0 评论