面试题复习-常用设计模式-委派模式

接口:

package com.ajax.pattern.delegate;

interface Tool {
    void work();
}

实现:

package com.ajax.pattern.delegate;

public class Broom implements Tool {
    @Override
    public void work() {
        System.out.println("扫把");
    }
}
package com.ajax.pattern.delegate;

public class Mop implements Tool {
    @Override
    public void work() {
        System.out.println("拖把扫地");
    }
}

被委派者:

package com.ajax.pattern.delegate;

import java.util.Calendar;

public class Delegate implements Tool {
    @Override
    public void work() {
        Tool p = Calendar.getInstance().get(Calendar.HOUR_OF_DAY) <= 12 ? new Mop() : new Broom();
        p.work();
    }
}

运行:

package com.ajax.pattern.delegate;

public class Run {
    public static void main(String[] args) {
        new Delegate().work();
    }
}
posted @ 2019-08-02 19:54  疯狂阿贾克斯  阅读(124)  评论(0编辑  收藏  举报