静态代理模式(StaticProxy)

静态代理的要求:真实角色,代理角色,二者实现同一个接口,代理角色要有真实角色的引用(要知道你是谁)

举个例子:结婚

  真实角色:你,你结婚(自定义类)

  代理角色:婚庆公司,帮你处理结婚的一些事情(Thread类)

  实现同一个接口:都是实现结婚这个事情(都实现Runnable接口)

  不同点:你实现结婚,你可以只开心,做点简单的事;婚庆公司实现结婚要干很多事情

 1 public class StaticProxy {
 2     public static void main(String[] args) {
 3 
 4         You you = new You();//你是真实对象
 5         MarryCompany company = new MarryCompany(you);//代理你结婚的事情
 6         company.HappyMary();
 7     }
 8 }
 9 
10 //接口
11 interface Marry{
12 
13     void HappyMary();
14 }
15 
16 //真实角色
17 class You implements Marry{
18 
19     @Override
20     public void HappyMary() {
21         System.out.println("结婚你很开心");
22     }
23 }
24 
25 //代理角色
26 class MarryCompany implements Marry{
27 
28     private Marry target;
29 
30     public MarryCompany(Marry target){
31         this.target = target;
32     }
33 
34     @Override
35     public void HappyMary() {
36         before();
37         this.target.HappyMary();
38         after();
39     }
40 
41     private void before(){
42         System.out.println("结婚前布置现场");
43     }
44 
45     private void after(){
46         System.out.println("结婚后收尾款");
47     }
48 }

 

  

  

上一篇:dpdk命令笔记


下一篇:无线网络协议专题《MAC地址,单播,组播,广播》