静态代理模式代码演示

Posted 戒急静心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了静态代理模式代码演示相关的知识,希望对你有一定的参考价值。

一、静态代理:增强行为
1、真实角色
2、代理角色+真实角色的引用
3、代理行为
要求实现相同的接口

1、接口,租赁行为

 1 package com.wisezone.dailies;
 2 
 3 /**
 4  * 接口,租赁行为
 5  * @author 王东海
 6  * @2017年4月16日
 7  */
 8 public interface Rent
 9 {
10     /**
11      * 租赁
12      * void
13      */
14     public void rent();
15 }

2、真实角色类

 1 package com.wisezone.dailies;
 2 
 3 /**
 4  * 真实角色类
 5  * @author 王东海
 6  * @2017年4月16日
 7  */
 8 public class You implements Rent
 9 {
10 
11     @Override
12     public void rent()
13     {
14         System.out.println("收取房租,过过包租婆的日子");
15     }
16 
17 }

3、代理角色类

 1 package com.wisezone.dailies;
 2 
 3 /**
 4  * 代理角色类
 5  * 要有增强行为
 6  * 并且具有真实角色
 7  * @author 王东海
 8  * @2017年4月16日
 9  */
10 public class Proxy implements Rent
11 {
12 
13     private You you;
14     
15     
16     public Proxy(You you)
17     {
18         this.you = you;
19     }
20 
21     //1.前期增强
22     public void before(){
23         System.out.println("寻找租房客户...");
24         
25     }
26     
27     //2.后期行为
28     public void after(){
29         System.out.println("收取中介费....");
30         
31     }
32 
33     @Override
34     public void rent()
35     {
36         before();
37         you.rent();//真实角色的行为
38         after();
39     }
40 
41 }

4、测试结果

 1 package com.wisezone.dailies;
 2 
 3 public class TestProxy
 4 {
 5     public static void main(String[] args)
 6     {
 7         You you = new You();
 8         Proxy proxy = new Proxy(you);
 9         proxy.rent();
10     }
11 }

打印:

寻找租房客户...
收取房租,过过包租婆的日子
收取中介费....

以上是关于静态代理模式代码演示的主要内容,如果未能解决你的问题,请参考以下文章

抽丝剥茧——代理设计模式

代理模式(静态代理动态代理)代码实战(详细)

代理模式

代理模式之静态代理实现代码

代理模式(静态代理)

使用代理模式来给交易模块添加缓存功能