当前位置 : 主页 > 编程语言 > c++ >

简单的代理模式理解

来源:互联网 收集:自由互联 发布时间:2021-07-03
简单的以一个追女朋友的方式来体现代理模式 假如追女生的时候,你不认识那个女生,就需要有一个中间代理人来帮助你做一些事,我们就利用一个代理类来实现interface GiveGift { void
简单的以一个追女朋友的方式来体现代理模式
假如追女生的时候,你不认识那个女生,就需要有一个中间代理人来帮助你做一些事,我们就利用一个代理类来实现
interface GiveGift {
    void GiveDolls();   //送洋娃娃
    void GiveFlowers();   //送鲜花
    void GiveChocolate();   //送巧克力
}
//被追求者类
public SchoolGirl {
    private String name;
    public String getName() {
           return name;
    }
    public void setName(String name) {
        this.name=name;
    }
}
//追求者类如下
public Pursuit implements GiveGift {
     SchoolGirl mm;
     public Pursuit( SchoolGirl mm) {
         this.mm=mm;
     }
     public void  GiveDolls() {
         System.out.println(mm.name+"送你洋娃娃");
     }
     public void GiveFlowers() {
          System.out.println(mm.name+"送你鲜花");
     }
     public void GiveChocolate() {
          System.out.println(mm.name+"送你巧克力");
     }
}
//代理类如下,代理类也要继承接口
public Proxy implements GiveGift {
    Pursuit gg;
    public Proxy(Pursuit gg) {
        gg=new Pursuit();
    }
     public void  GiveDolls() {
        gg.GiveDolls();
     }
     public void GiveFlowers() {
          gg.GiveFlowers();
     }
     public void GiveChocolate() {
          gg.GiveChocolate();
     }
}
//代理模式一般有四种应用,第一是远程应用,也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象
//存在于不同地址空间的事实,第二是虚拟代理,是根据需要创建开销很大的对象,通过它来存放实例化需要很长时间的对象
//第三种是安全代理,控制真实访问时的权限,第四种是智能指引,是指当调用真实对象时,代理处理另外一些事
网友评论