静态代理

163 阅读1分钟

静态代理

  • 静态代理需要真实的对象和代理对象同时实现同一个接口
  • 代理对象需要拥有一个需要代理的真实角色
  • 好处:
    1. 代理对象可以做很多真实对象做不了的事
    2. 真实对象更专注于做自己的事
  • 案例
package com.Thread;

//静态代理
public class StaticProxy {
    public static void main(String[] args) {
        Marry you = new You();
        Marry 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("结婚前,布置现场");
    }
}