先前(上个重构项)我从TelephoneNumber提炼出另一个class,现在我要将它inlining塞回到Person去。一开始这两个classes是分离的:
class Person...
    public String getName() {
        return _name;
    }
    public String getTelephoneNumber() {
        return _officeTelephone.getTelephoneNumber();
    }
    TelephoneNumber getOfficeTelephone() {
        return _officeTelephone;
    }
    private String _name;
    private TelephoneNumber _officeTelephone = new TelephoneNumber();
class TelephoneNumber...
    public String getTelephoneNumber() {
        return ("(" + _areaCode + ")" + _number);
    String getAreaCode() {
        return _areaCode;
    }
    void setAreaCode(String arg) {
        _areaCode = arg;
    }
    String getNumber() {
        return _number;
    }
    void setNumber(String arg) {
       _number = arg;
    }
    private String _number;
    private String _areaCode;
首先我在Person中声明TelephoneNumber的所有[可见](public)函数:
class Person...
    String getAreaCode() {
        return _officeTelephone.getAreaCode();
    }
    void setAreaCode(String arg) {
        _officeTelephone.setAreaCode(arg);
    }
    String getNumber() {
        return _officeTelephone.getNumber();
    }
    void setNumber(String arg) {
       _officeTelephone.setNumber(arg);
    }
现在,我要找出TelephoneNumber的所有用户,让它们转而使用Person接口。于是下列代码:
    Person martin = new Person();
    martin.getOfficeTelephone().setAreaCode("781");
就变成了:
    Person martin = new Person();
    martin.setAreaCode("781");
现在,我可以持续使用Move Method(142)和Move Field(146),直到TelephoneNumber不复存在。