静态代理设计模式,就是代理对象来帮你忙前忙后,你负责出席一下就好了。
需要:
1.实现相同的接口
2.真实角色
3.代理角色,里面有一个成员是接口对象(实际上是真实角色----接口实现类的对象)
4.代理角色调用共同的方法。
看例子:
/** * 静态代理 * 需要实现相同的接口 * 1.真实角色 * 2.代理角色,里面存放接口对象(实际是接口的实现类对象) */ public class StaticProxy { public static void main(String[] args) { new Me(new Zhangsan()).goBattle(); } } //统一的接口:去打架 interface Battle{ void goBattle(); } //真实对象:去打架的人 class Zhangsan implements Battle{ @Override public void goBattle() { System.out.println("张三:爷们要战斗!"); } } //代理对象,为真实角色忙前忙后:武器提供者 class Me implements Battle{ Battle someBody; public Me(Battle someBody){ this.someBody=someBody; } @Override public void goBattle() { giveSome(); someBody.goBattle();//灵魂在此 returnSome(); } //忙前 void giveSome(){ System.out.println("拿到一把武器!"); } //忙后 void returnSome(){ System.out.println("打完了武器还掉。"); } }
总所周知:
1.Thread实现了Runnable接口
2.我在自己做个类Mythread也实现了Runnable接口,那肯定得重写它唯一的run方法啊。
3.Thread里面有Runnable接口的对象:
4.Thread(通过start)调用run方法。
所以说,最经典的代理设计模式就是多线程的开启模式:
开启一个线程:new Thread(new Mythread()).start();
标签:设计模式,Java,void,代理,接口,someBody,多线程,public,goBattle From: https://www.cnblogs.com/lurenjia-bky/p/16882129.html