重构二--在对象之间搬移特性(Move field)(4)--范例(1)

重构二--在对象之间搬移特性(Move field)(4)--范例(1)
范例(Examples)
下面是Account class的部分代码:
class Account...
    private AccountType _type;
    private double _interestRate;
    double interestForAmount_days(double amount, int days) {
       return _interestRate * amount * days / 365;
    }
我想把表示利率的_interestRate搬移到 AccountType class去。目前已有数个函数引用了它,interestForAmount_days()就是其一。下一步我要在 AccountType中建立_interestRate field以及相应的访问函数:
class AccountType...
    private double _interestRate;

    void setInterestRate(double arg) {
       _interestRate = arg;
    }
    double getInterestRate() {
       return _interestRate;
    }

这时候我可以编译新的 AccountType class。
现在,我需要让Account class中访问_interestRate field的函数转而使用AccountType对象,然后删除Account class中的_interestRate field。我必须删除source field,才能保证其访问函数的确改变了操作对象,因为编译器会帮我指出未正确获得修改的函数。
    private double _interestRate;
    double interestForAmount_days(double amount, int days) {
       return _type.getInterestRate() * amount * days / 365;
    }

你可能感兴趣的:(重构二--在对象之间搬移特性(Move field)(4)--范例(1))