b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

微服务架构 云计算 重构 -改变既有代码的设计 ---- 笔记(21)

电脑杂谈  发布时间:2018-10-13 16:05:07  来源:网络整理

动机

如果一个函数可以通过其他的途径获得参数值,那么它就不应该通过参数取得该值

如果你能有其他的方法或者相同的计算值

如果要在对调用对象的引用的其他对象上调用方法

某些参数总是很自然的同时出现

以一个对象取代这些参数


    class Customer{
        amountInvoicedIn (start : Date, end : Date)
        amountReceivedIn (start : Date, end : Date)
        amountOverdueIn (start : Date, end : Date)
    }

to


    class Customer{
        amountInvoicedIn (: DateRange)
        amountReceivedIn (: DateRange)
        amountOverdueIn (: DateRange)
    }

动机

减少参数列表的长度

使代码看的更加简洁

类中的某个字段应该在对象创建时被设值,然后就不再改变

去掉该字段的所有设值函数


    class Employee{
        setImmutableValue()
    }

to


    class Employee{
        ??\_(ツ)_/??
    }

动机

确保你的清晰的目的 : 如果你想你的字段在创建之后就不要被改变了,你就不应该提供一个setting方法用于确保你的字段是否不被改变的

有一个函数,从来没有被其他任何类用到

将这个函数修改为 private


    class Employee{
        public method()
    }

to


    class Employee{
        private method()
    }

动机

如果一个方法不需要被外部调用,那么就应该讲这个方法隐藏

在创建对象时不仅仅是做简单的健够动作

将构造函数替换为工厂函数


    Employee (int type) {
        _type = type;
    }

to


    static Employee create(int type) {
        return new Employee(type);
    }

创建一个对象依赖于其子类,构造函数只能返回单一类型的对象,因此你需要将构造函数替换为一个工厂函数

某个函数返回的对象,需要由调用者执行向下转型

将向下转型动作转移到函数中


    Object lastReading() {
        return readings.lastElement();
    }

to


    Reading lastReading() {
        return (Reading) readings.lastElement();
    }

动机

将一个方法最有效的返回值进行返回给函数的调用者

如果类型是准确的,检查使用这个对象的方法并提供一个更为有效的方法

某个函数返回一个特定的代码,用以表示某种错误情况

改用异常将其抛出去


    int withdraw(int amount) {
        if (amount > _balance)
            return -1;
        else {
            _balance -= amount;
            return 0;
        }
    }


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-89441-21.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...