Proxy Design Pattern(代理设计模式)

Proxy Design Pattern(代理设计模式)

ID:40565486

大小:41.33 KB

页数:9页

时间:2019-08-04

Proxy Design Pattern(代理设计模式)_第1页
Proxy Design Pattern(代理设计模式)_第2页
Proxy Design Pattern(代理设计模式)_第3页
Proxy Design Pattern(代理设计模式)_第4页
Proxy Design Pattern(代理设计模式)_第5页
资源描述:

《Proxy Design Pattern(代理设计模式)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、代理模式:给某一对象提供代理对象,并由代理对象控制具体对象的引用。 代理模式涉及的角色: 1:抽象主题角色.声明了代理主题和真实主题的公共接口,使任何需要真实主题的地方都能用代理主题代替. 2:代理主题角色.含有真实主题的引用,从而可以在任何时候操作真实主题,代理主题功过提供和真实主题相同的接口,使它可以随时代替真实主题.代理主题通过持有真实主题的引用,不但可以控制真实主题的创建或删除,可以在真实主题被调用前进行拦截,或在调用后进行某些操作. 3:真实代理对象.定义了代理角色所代表的具体对象.  我们可以用客户买

2、红酒来模拟代理模式的实现  红酒代理商和红酒厂商都有销售红酒的ke能,我们可以为他们定义一个共同的抽象主题角色, 2 *抽象主题角色,定义了真实角色和代理角色的公共接口 3 */  4 public interface SellInterface{  5      public Object sell();  6 } 接着,我们定义真实主题角色(这里就是红酒工厂),它必须实现了SellInterface接口的.  2 *真实主题角色,这里指红酒工厂角色,它实现了SellInterface接口 3 */  4 pu

3、blic class RedWineFactory implements SellInterface{  5      public Object sell(){  6          System.out.println("真实主题角色RedWineFactory 被调用了");  7          return new Object();  8      }  9 } 接着,我们定义真实主题角色(这里就是红酒工厂),它必须实现了SellInterface接口的.  1./** 2.*真实主题角色,这里指

4、红酒工厂角色,它实现了SellInterface接口 3.*/  4.public class RedWineFactory implements SellInterface{  5.     public Object sell(){  6.         System.out.println("真实主题角色RedWineFactory 被调用了");  7.         return new Object();  8.     }  9.}    下面是代理主题角色(这里指红酒代理商),同样,代理主题也

5、必须实现SellInterface接口.  1./** 2.*代理主题角色,这里指红酒代理商.它除了也要实现了sellInterface接口外,还持有红酒 3.*厂商RedWineFactory 对象的引用,从而使它能在调用真实主题前后做一些必要处理. 4.*/  5.public class RedWineProxy implements SellInterface{  6.     //持有一个RedWineFactory对象的引用  7.      private RedWineFactory redWin

6、eFactory;  8.  9.     //销售总量  10.      private static int sell_count = 0;  11.  12.     public Object sell(){  13.         if(checkUser()){//在通过代理主题角色,我们可以在真实主题角色被调用前做一些诸如权限判断的事情  14.             Object obj = redWineFactory.sell();  15.             count ++;/

7、/同样,在调用后我们也可以执行一些额外的动作.  16.             return obj ;  17.         }else{  18.             throw new RuntimeException();  19.         }  20.     }  21.  22.     protected boolean checkUser(){  1.            //do something  2.            return true;  3.     }

8、  4.} 接下来看看调用代理对象的代码   1.public static void main(String agr[])  2.{  3.     SellInterface sell = new RedWineProxy();  4.     sell.sell();  5.} 从上面的例子可以看出代理模式的工作方式,首先,因为代理主题和真实主题都实现了共同的接口,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。