【多线程】Thread静态代理模式理解
Thread静态代理模式理解
代码示例:
/** * @Description 静态代理模式 * @Author hzx * @Date 2022-03-26 */ public class StaticProxy { public static void main(String[] args) { You you = new You(); //你要结婚 WeddingCompany weddingCompany = new WeddingCompany(you); //代理对象,帮助你完成婚礼 weddingCompany.HappMarry(); //以下代码用于对比: Thread实现和静态代理 Runnable runnable = new Runnable() { //定义一个Runnable对象 @Override public void run() { System.out.println("【Runnable】 i love you"); } }; Thread thread = new Thread(runnable); //代理对象 thread.start(); } } interface Marry { void HappMarry(); } /** * 真实角色,你去结婚 */ class You implements Marry { @Override public void HappMarry() { System.out.println("【真实角色】举行婚礼仪式,超开心"); } } /** * 代理角色,帮助你完成婚礼 */ class WeddingCompany implements Marry { private Marry target; public WeddingCompany(Marry target) { this.target = target; } @Override public void HappMarry() { before(); this.target.HappMarry(); after(); } private void before() { System.out.println("【代理角色】结婚之前,布置婚礼现场"); } private void after() { System.out.println("【代理角色】结婚之后,打扫婚礼现场"); } }
执行结果:
【代理角色】结婚之前,布置婚礼现场 【真实角色】举行婚礼仪式,超开心 【代理角色】结婚之后,打扫婚礼现场 【Runnable】 i love you
静态代理模式总结:
- 1.真实对象和代理对象都要实现同一个接口;
- 2.代理对象要代理真实角色。
好处:
- 1.代理对象可以做很多真实对象做不了的事情;
- 2.真实对象专注做自己的事情。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南