Java:静态代理java 代理
举例:
你:真实角色
婚庆公司:代理,帮你布置婚礼
代码演示:
package com.jiemyx.lambda; public class StaticProxy { public static void main(String[] args) { You you = new You(); WeddingCompany weddingCompany = new WeddingCompany(you); weddingCompany.happyMarry(); System.out.println("============"); //匿名类 new WeddingCompany(new You()).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() { this.target.happyMarry(); after(); } private void after() { System.out.println("婚礼后,跟客户收尾款"); } } //静态代理模式总结 //真实对象和代理对象都要实现同一个接口 //代理对象代理真实角色 //好处: //代理对象可以做很多真实对象做不了的事情 //真实对象专注做自己的事情运行结果:
布置婚礼
婚礼后,跟客户收尾款
============
布置婚礼
婚礼后,跟客户收尾款
静态代理与Thread对比
package com.jiemyx.lambda; public class StaticProxy2 { public static void main(String[] args) { //匿名类 new Thread(new Runnable() { @Override public void run() { System.out.println("我爱你"); } }).start(); //Lambdab表达式简化后 new Thread(()-> System.out.println("我爱你")).start(); //静态代理与Thread对比 //new Thread(()-> System.out.println("我爱你")).start(); //new WeddingCompany(new You()).happyMarry(); } }运行结果:
我爱你
我爱你
快速理解 Java 静态代理 / 动态代理java静态代理和动态代理
Java学习路线-57:静态代理和动态代理java静态代理和动态代理
Java动态代理的两种实现方法:JDK动态代理和CGLIB动态代理jdk静态代理和动态代理
静态代理、动态代理,以及动态代理的调用说明静态代理和动态代理
#yyds干货盘点# 设计模式之静态代理,jdk动态代理,cglib动态代理的区别jdk静态代理和动态代理
代理模式之静态代理,JDK动态代理和cglib动态代理jdk cglib动态代理
Spring入门第三讲 Spring中的代理 静态代理 动态代理(JDK代理) cglib代理(字节码增强) Spring中的AOPspring的静态代理和动态代理