Java静态代理

静态代理

  • 目标对象和代理对象都要实现同一个接口

  • 代理对象要代理真实角色

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

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

例子:婚庆公司代理结婚

public class staticProxy {
    public static void main(String[] args) {
        //通过WeddingCompany调用marry()而非Customer自己调用
      new WeddingCompany(new Customer()).marry();
    }
}

//定义一个公共接口Marry
interface Marry{
    public void marry();
}

//真实对象实现Marry
class Customer implements Marry{
    @Override
    public void marry() {
        System.out.println("结婚啦~~~~~");
    }
}

//代理对象实现Marry
class WeddingCompany implements Marry{
    private Customer cus;

    public WeddingCompany(Customer cus) {
        this.cus = cus;
    }

    @Override
    public void marry() {
        preparation();
        cus.marry();
    }

    private void preparation() {
        System.out.println("婚前准备工作");
    }
}

注意:使用runnable接口实现线程创建就用到了静态代理

posted @ 2022-11-05 11:56  奚罗罗  阅读(109)  评论(0编辑  收藏  举报