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

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

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

to


    class ClientClass {
        //Dependencies
        Person person = new Person()
        Department department = new Department()
        person.doSomething()
        department.doSomething()
    }

动机

当客户类使用过多的中间人调用委托的方法

一个类是引用的外部开源包,但是不能修改其内部的逻辑

创建一个新的方法在这个类中,并以第一个参数的形式传入一个服务类实例


    Date newStart = new Date(previousEnd.getYear(),previousEnd.getMonth(),previousEnd.getDate()+1);

to


    Date newStart = nextDay(previousEnd);

    private static Date nextDay(Date date){
        return new Date(date.getYear(),date.getMonth(),date.getDate()+1);
    }

动机

当你使用一个类,这个类你又不能对其进行修改的时候可以采用这样方式

你需要为一个服务类提供一些额外的方法,但是你无法修改这个子类

创建一个新的类,使它包含这些额外的方法。这个扩展的类成为源类的子类或者包装类


    class ClientClass(){

        Date date = new Date()
        nextDate = nextDay(date);

        private static Date nextDay(Date date){
            return new Date(date.getYear(),date.getMonth(),date.getDate()+1);
        }
    }

to


    class ClientClass() {
        MfDate date = new MfDate()
        nextDate = nextDate(date)
    }
    class MfDate() extends Date {
        ...
        private static Date nextDay(Date date){
            return new Date(date.getYear(),date.getMonth(),date.getDate()+1);
        }
    }

动机

当我们使用 16. Introduce Foreign Method 我们需要在这个类中添加额外的方法

你可以直接获取对象,但是这样的话会变得越来越复杂

通过创建setting getting 方法来获取这些字段


    private int _low, _high;
    boolean includes (int arg) {
        return arg >= _low && arg <= _high;
    }

to


    private int _low, _high;
    boolean includes (int arg) {
        return arg >= getLow() && arg <= getHigh();
    }
    int getLow() {return _low;}
    int getHigh() {return _high;}


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

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

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