代理模式

         所谓代理模式就是将使用者和原始对象隔开,通过代理类创建对象来间接操作被代理类对象。这样做的好处是可以将被代理类及其对象屏蔽掉。

 

         interface A {  // 业务接口,最重要, 把所有类都联系起来了.

                  public void r();

         }

 

         class B implements A {

                  @Override

                  public void r() {

                            System.out.println("被代理类!");

                  }

         }

//

         class C implements A { // 代理对象也要实现业务接口, 表明代理对象也具有业务能力.

        

                   private A a = new B(); // 对象关联被代理对象.

        

                  @Override

                  public void r () {

                            System.out.println("开始代理!");

                            a.r(); // 真正的业务方法是被代理对象的

                            System.out.println("代理结束!");

                  }

         }

 

         class Client {

        

                  public static void main(String[] args) {

                            A a = new B(); // 创建代理对象, 因为被代理对象访问不到

                            a.r ();

                  }

        

         }

 

         上面的代码就是代理模式的过程。类C是类B的代理类,它们都要实现A接口并实现r()方法。在代理类B中需要创建被代理类对象,这样一旦在外面创建一个代理类对象,也会自动间接地创建一个被代理类的对象。代理类也和被代理类一样需要实现接口的方法,并且在方法中利用被代理类对象调用被代理类对象的方法,这样在外部利用代理类对象调用方法实际上就是调用的被代理类对象的方法。这样,就实现了代理模式。(整个过程还用到了多态)。

 

 

                                                                                                                                by Karl

转载于:https://my.oschina.net/karl0/blog/761423

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值