美文网首页
重构 改善既有代码的设计笔记

重构 改善既有代码的设计笔记

作者: V_coa | 来源:发表于2016-09-04 10:50 被阅读86次
    • Extract Method 有一段代码可以被组织在一起并独立出来,一个函数过长,让人难以理解,这时候通过提取函数,把大的函数分成各个小的函数,为小的函数取个合适的函数名。来表明它是做什么事情的。无局部变量,有局部变量,对局部变量再赋值。

    • Inline Method 一个函数体内的代码表达出和函数名称同样清晰。就不必再用一个函数把它提取出来

    • Inline Temp 如果一个临时变量只被赋值一次,而它又妨碍了其他重构方法。

    • Replace Temp with Query 如果一个临时变量被赋值一次某个计算的结果,将这个运算提取到函数中,新的函数就可以被其他函数使用。临时变量的问题在于,它只能被所属的函数使用,所有它会导致写更长的函数。而且如果在类中,其他函数也能获取这个计算的信息。

    • Split Temporary Variable 分解临时变量,代码种的临时变量被赋值超过一次,但是它不是循环变量,也不是计算结果。

    • Replace Method with Method Object 有一个大型的无法,局部变量,使你无法使用Method

    • Move Method 函数体内,与另外一个对象有更多的交流,应该把该函数移到另一个对象内。

    • Move Field 某个字段被所在的另一个类更多使用

    • Extract Class 某个类做了两个或以上类做的事情

    • Hide Delegate 客户通过一个委托类来调用另一个对象,将委托关系隐藏起来,减少依赖。

    • Remove Middle Man 是上面的Hide Delegated类似于逆向的过程,就是大量做了简单的委托操作,就可以去除这层委托。

    • Introduce Foreign Method 添加函数,无法修改类。

    • Self Encapsulate 封装字段。子类可以重写一个函数改变获取数据的途径,灵活的数据管理方式。可以延迟初始化等。

    • Replace Data Value with Object 有一项数据,需要与其他数据和行为一起使用才有意义。

    • Change Value to Reference 生成多个不同的对象,希望他们替换为同一个。

    • Replace Array with Object 有一个数组,其中保持着各自元素代表不同的属性,可以为它创建一个对象。

    • Replace Type Code with Subclasses 有一个类型码,它会影响类的行为。当你用这个类型码,去做一些行为的时候,可以它当前的类,当做基类,然后每个类型码生成一个子类,重写函数,来决定它的行为。这样可以避免写大量switch,或者if else。

    • Consolidate Duplicate Conditional Fragments 条件语句的每个分支都有相同的代码,把它提取到外面。

    • Remove Control Flag 在布尔表达式种,某个变量充当标记作用,可以用break,return去除它。

    • Replace Nested Conditional with Guard Clauses 条件逻辑的难以让人看情况执行的路径,用guard clauses处理特殊的情况。

    相关文章

      网友评论

          本文标题:重构 改善既有代码的设计笔记

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