多线程中的静态代理模式
Posted tele-share
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多线程中的静态代理模式相关的知识,希望对你有一定的参考价值。
静态代理的例子:
1 /**
2 * 1.真实角色
3 * 2.代理角色
4 * 3.共同实现的接口
5 * @author tele
6 *
7 */
8 public class StaticProxy {
9 public static void main(String[] args) {
10 //创建真实角色,可使用接口
11 Marry you = new You();
12 //创建代理角色,代理角色往往要添加新的方法,不建议使用接口创建
13 WeddingCompany company = new WeddingCompany(you);
14
15 company.marry();
16
17 }
18 }
19
20 //接口
21 interface Marry{
22 void marry();
23 }
24
25 //真实角色
26 class You implements Marry{
27 @Override
28 public void marry() {
29 System.out.println("我结婚了");
30 }
31 }
32
33 //代理角色,需要持有真实角色的引用
34 class WeddingCompany implements Marry{
35 private Marry you;
36
37 public WeddingCompany() {
38 super();
39 // TODO Auto-generated constructor stub
40 }
41
42 public WeddingCompany(Marry you) {
43 super();
44 this.you = you;
45 }
46
47 @Override
48 public void marry() {
49 you.marry();
50 }
51
52 }
从上面的例子可以看到,实现静态代理模式时有三个要素
1.真实角色(委托对象)
2.代理角色
3.共同实现的接口
对比以实现Runnable接口的形式创建多线程,可以发现,代理角色Thread类不需要我们创建,我们只需要写委托对象
实现Runnable接口.把委托对象的引用传递给Thread,借助Thread对象来开启线程即可
以上是关于多线程中的静态代理模式的主要内容,如果未能解决你的问题,请参考以下文章