代理

代理分为静态代理动态代理

静态代理:

真实对象和代理对象都要实现同一个接口

代理对象要代理真实角色

好处:

代理对象可以做很多真实对象做不了的事情

真实对象专注做自己的事情

静态代理实例:

package com.wzz.A03多线程;
//静态代理总结
//真实对象和代理对象都要实现同一个接口
//代理对象要代理真实角色

//好处
    //代理对象可以做很多真实对象做不了的事情
    //真实对象专注做自己的事情
public class TestThread7 {
    public static void main(String[] args) {
        You you = new You();
        //you.HappyMarry();//原来调用方法
        WeddingCompany weddingCompany = new WeddingCompany(you);
        weddingCompany.HappyMarry();
    }
}

interface Marry{
    //人间四大喜事:久旱逢甘露、他乡遇故知、洞房花烛夜、金榜题名时
    void HappyMarry();
}

class You implements Marry{//真实角色,你去结婚

    @Override
    public void HappyMarry() {
        System.out.println("结婚了,超开心");
    }
}

class WeddingCompany implements Marry{//代理角色,帮助你结婚
    private Marry target;//代理谁-->真实目标角色

    public WeddingCompany(Marry target) {
        this.target = target;
    }

    @Override
    public void HappyMarry() {
        before();
        this.target.HappyMarry();//真实对象结婚
        after();
    }

    private void after() {
        System.out.println("结婚之后,收尾款");
    }

    private void before() {
        System.out.println("结婚之前,布置现场");
    }
}

 

posted @ 2021-10-11 17:04  隔岸稻花香  阅读(39)  评论(0编辑  收藏  举报