静态代理模式:
用结婚来解释一下静态代理模式。
通常我们结婚如果自己准备,所有的事需要自己去干,但是如果将这件事交给婚庆公司来完成,只需要自己即可,将自己的要求给婚庆公司,婚庆公司去完成即可。
- 创建一个结婚的接口
- 创建一个具体的结婚对象类实现结婚的接口
- 创建一个婚庆公司
- 创建一个具体的结婚对象类的实例
- 将结婚对象传给婚庆公司类并创建婚庆公司实例
- 婚庆公司调用marry方法去完成结婚的有关事宜
Thread类就是一个静态代理模式。
结婚的代理模式代码:
public class staticproxy {
public static void main(String[] args) {
/* Thread thread = new Thread(new Runnable() {
@Override
public void run() {
}
});
thread.start();
*Thread类与静态代理一样
*
* */
//具体的对象
you you = new you();
//代理类
WeddingCompany weddingCompany = new WeddingCompany(you);
//代理中的方法
weddingCompany.marry();
}
}
//创建结婚的接口
interface Marry{
void marry();
}
//创建具体的类
class you implements Marry{
@Override
public void marry() {
System.out.println("今天你结婚了,非常的开心");
}
}
//创建代理类
class WeddingCompany implements Marry{
private Marry target;
public WeddingCompany(Marry target){
this.target=target;
}
@Override
public void marry() {
before();
this.target.marry();
after();
}
private void before() {
System.out.println("结婚之前准备工作");
}
private void after() {
System.out.println("结婚之后的善后工作");
}
}