闲聊31天重构-第3,4天:方法提公&降低方法

Pull Up Method方法提公

D:以下为原来的代码:

public abstract class Vehicle{
    // other methods
}

class Car extends Vehicle{
    public void Turn(Direction direction){
        // code here
    }
}

class Motorcycle extends Vehicle{
    public void Turn(Direction direction){
        // code here
    }
}

enum Direction{
    Left,
    Right
}

M:这段代码有什么问题?

Z:Vehicle的两个子类Car,Motorcycle都用到Turn方法,可以把这个方法提出来放到基类中。这样不仅减少代码量,而且提高了代码的复用性。

public abstract class Vehicle{
    public void Turn(Direction direction){
        // code here
    }
    // other methods
}

class Car extends Vehicle{

}

class Motorcycle extends Vehicle{

}

enum Direction{
    Left,
    Right
}

M:总结一下,两个子类都用到同一个方法,把共性方法提到基类中。

Push Down Method降低方法

Z:降低方法刚好和上面的方法提公相反,方法提公就是基类中某个方法只有某个子类会用,那就提取到需要它的类中去。让结构更清晰,提高代码的可读性。

原代码:

public abstract class Vehicle{
    public void Turn(Direction direction){
        // code here
    }
    // other methods
}

class Car extends Vehicle{

}

class Motorcycle extends Vehicle{

}

enum Direction{
    Left,
    Right
}

重构后的代码:

public abstract class Vehicle{
    // other methods
}

class Car extends Vehicle{
    public void Turn(Direction direction){
        // code here
    }
}

class Motorcycle extends Vehicle{

}

enum Direction{
    Left,
    Right
}

猜你喜欢

转载自blog.csdn.net/qq_30258957/article/details/80689441