【重构】如果发现提取的方法不再通用,如何重构

前言

  • 所谓重构(refactoring):
    在不改变代码外在行为的前提下,对代码做出修改,以改进程序的内部结构。 – Martin Fowler
  • 背景
    最近在做需求,需要对方法加权限控制,发现旧方法不再适用,需要重新抽象。积累了一个安全重构小技巧。

步骤

  • 期望将 methodB 恢复到 methodA 和 methodC 中,删掉methodB

    public static void methodA() {
        System.out.println("methodA");
        System.out.println("doSomething before methodB");
        methodB();
        System.out.println("doSomething after methodB");
    }

    public static void methodC() {
        System.out.println("methodC");
        System.out.println("doSomething before methodB");
        methodB();
        System.out.println("doSomething after methodB");
    }

    public static void methodB() {
        System.out.println("doSomething while methodB");
    }

    public static void main(String[] args) {
        methodA();
        methodC();
    }
  • idea 重构 。快捷键:Ctrl + Alt + N
    在这里插入图片描述
    在这里插入图片描述
  • 好处
    消除手工移动因素,重构动作较为安全。

后记

  • 《修改代码的艺术》
  • 《重构》

以上两本书,主要是在强调如何把代码调整到易读,代码出现坏味道时如何修改。
idea 里面 “Refactor” 中的很多用途都有上述两本书的影子。
如果决定要重构,除了需要有测试用例保证重构安全,还需要多使用工具消除人工移动代码的隐患。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值