静态代理
静态代理

就好比自己要结婚,你可以找一个婚庆公司帮你处理结婚的事情
总结
真实对象和代理对象都要实现一个接口
代理对象要代理真实角色
好处:代理对象可以做很多真实对象做不了的事情,真实对象专注做自己的事情
**
* 结婚接口
*/
public interface Marry {
//结婚
public void HappyMarry();
}
import com.multithreading.interfaeces.Marry;
/**
* 真实角色,你去结婚
*/
public class YouImp implements Marry {
@Override
public void HappyMarry() {
System.out.println("你要结婚了,很开心");
}
}
import com.multithreading.interfaeces.Marry;
/**
* 代理角色,帮你结婚
*/
public class WeddingCompanyImp implements Marry {
//代理谁 --> 真实目标角色
private Marry target;
public WeddingCompanyImp(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("结婚之前布置婚礼");
}
}
import com.multithreading.interfacesImp.WeddingCompanyImp;
import com.multithreading.interfacesImp.YouImp;
public class StaticProxy {
public static void main(String[] args) {
new Thread(()-> System.out.println("我爱你")).start(); //这里的Thread相当于WeddingCompanyImp一样静态代理实现,Thread静态代理Runnable,都有run()方法
new WeddingCompanyImp(new YouImp()).HappyMarry();
}
}

浙公网安备 33010602011771号