很浅的理解,希望大家抱着看看就好的心态来读这篇博文
刚刚学到多线程,创建多线程的一种方式是 实现Runnable接口,重写run方法,然后把实现接口的类对象给Thread 类包装,其实这是一种静态代理模式。
静态代理设计模式,
静态代理模式设计的思想是,让一个代理角色去做真实角色要做的事,真实的角色就可以去做其他的事情,但是本质上只是代理,最终受影响的还是真实角色
打个比方,比如我要买东西,但是我现在有事,走不开,我就找人帮忙代理我去买东西,虽然东西是代理人买的,但是最终这个东西还是给我的
这个事件的关键在于,我是真正买东西的人,而代理人只是个帮忙的,东西最后还是要给我
最后回归到Thread和Runnable上: 把 Thread 看作代理人,Runnable看作是真实的买东西的人,run方法就是我们的目的,Thread替我们完成了目的
//Thread类是实现了Runnable接口的
interface Buy{ //买东西接口
public abstract void buy();
}
class Myself implements Buy{ //真正买东西的角色 : 我
public void buy()
{
System.out.println("我: 东西收到了,谢谢!");
}
}
class Other implements Buy{ //代理角色
private Myself myself; //最终是我拿到东西,所以肯定要有我
public Other(){}
public Other(Buy my)
{
this.myself = (Myself)my;
}
public void buying(){
System.out.println("代理人: 你托我买的东西,我买了!");
}
public void buy() {
buying();
myself.buy();
}
}
public class StaticProxy {
public static void main(String[] args) //主函数
{
Myself my = new Myself(); //真实买东西的人
Other ot = new Other(my); //代理人
ot.buy(); //代理人买东西,最终受影响的是我
}
}
运行结果:
代理人: 你托我买的东西,我买了!
我: 东西收到了,谢谢!
Process finished with exit code 0