静态代理
真实对象和代理对象都要实现同一个接口
代理对象要代理真实角色,代理对象要有参数。
代理对象可以做真实对象做不了的事情,真实对象专注自己的事情
package com.wang.thread;public class StaticProxyDemo01 { public static void main(String[] args) { new Thread(new Runnable() {//Thread类相当于WeddingCompany代理中间真实对象(Runnable接口) @Override public void run() { System.out.println("i love you"); }}).start(); new WeddingCompany(new You()).marry();//下面两行代码的简写 //首先需要有个代理 WeddingCompany weddingCompany=new WeddingCompany(new You()); //调用方法 weddingCompany.marry(); }}interface Marry{ public void marry();}//真实角色class You implements Marry{ @Override public void marry() { System.out.println("要结婚啦"); }}//代理角色class WeddingCompany implements Marry{ //真实目标角色 private Marry target; public WeddingCompany(Marry target){ this.target=target; } @Override public void marry() { before(); //目标对象结婚 this.target.marry(); after(); } private void before(){ System.out.println("结婚之前布置现场"); } private void after(){ System.out.println("结婚之后,收尾款"); }}