重构读书笔记-11_3-Pull_Up_Constructor_

2019-07-31  本文已影响0人  MR_Model

重构第十一章

3.Pull Up Constructor Body(构造函数本体上移)

你在各个subclass中拥有一个构造函数,它们的本体(代码)几乎完全一致。在superclass中新建一个构造函数,并在subclass构造函数中调用它。

Example:

class Employee...
    protected String _name;
    protected String _id;

class Manager extends Employee...
    public Manager(String name, String id, int grade) {
        _name =name;
        _id = id;
        _grade = grade;
    }
    private int _grade;

End:

class Employee...
    Employee(String name, String id) {
        _name = name;
        _id = id;
    }

class Manager extends Employee...
    public Manager(String name, String id, int grade) {
        super(name, id);
        _grade = grade;
    }
    private int _grade;

Conclusion:

对于构造函数而言,它们彼此的共同行为,往往是对象的构建,这时候你需要在superclass中提供一个构造函数,然后让subclass都来调用它。这里无法使用Pull Up Method(函数上移)的方法,因为你无法在subclass中继承superclass的构造函数。

注意

重构必须在有单元测试的情况下,保证之前的功能修改后不收影响。切记!!!
上一篇 下一篇

猜你喜欢

热点阅读