实现静态代理对比Thread

实现静态代理对比Thread

(1)静态代理总结

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

(2)好处

  • 代理对象可以做更多真实对象做不了的事情
  • 真实对象专注于做自己的事情
package test;

//静态代理总结
//真实对象和代理对象都要实现同一个接口
//代理对象要代理真实角色

//好处
//代理对象可以做更多真实对象做不了的事情
//真实对象专注于做自己的事情
public class StaticProxy {

    public static void main(String[] args) {

        You you = new You();//你要结婚

        new Thread(()->System.out.println("代理对象")).start();


        WeddingCompany weddingCompany = new WeddingCompany(new 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();

    }

    public void  before(){
        System.out.println("结婚前:布置现场");
    }


    public void  after(){
        System.out.println("结婚后:收尾款");
    }
}
posted @ 2020-05-10 22:24  我有满天星辰  阅读(0)  评论(0编辑  收藏  举报