美文网首页
重构读书笔记-11_3-Pull_Up_Constructor_

重构读书笔记-11_3-Pull_Up_Constructor_

作者: MR_Model | 来源:发表于2019-07-31 09:37 被阅读0次

    重构第十一章

    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的构造函数。

    注意

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

    相关文章

      网友评论

          本文标题:重构读书笔记-11_3-Pull_Up_Constructor_

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