zoukankan      html  css  js  c++  java
  • 第七话-代理模式

    

    谈恋爱啊谈恋爱。

    但是怎么追女神呢?你是否也试过代理模式呢?啊,什么?追女神还和模式有关?当然。让我一起学习代理模式。
    一、什么是代理模式?
    代理模式就是为其它对象提供一种代理以控制对这个对象的訪问。

    有点拗口。事实上就是中间人而已。A与B认识,B与C认识,A不认识C。那么A怎么追C呢?B呗。
    二、代码实例(追女神)
    Main.java
    public class Main {
     public static void main(String[] args){
      Nvshen nvshen = new Nvshen();
      nvshen.setName("上官彤彤");
      Proxy proxy = new Proxy(nvshen);
      proxy.giveChocolate();
      proxy.giveDoll();
      proxy.giveFlower();
     }
    }

    Pursue.java
    public interface Pursue {
     void giveDoll();
     void giveFlower();
     void giveChocolate();
    }

    Nvshen.java
    public class Nvshen {
     private String name;

     public String getName() {
      return name;
     }

     public void setName(String name) {
      this.name = name;
     }
     
    }

    Pursuer.java
    public class Pursuer implements Pursue {
     private Nvshen mynvshen;

     public Pursuer(Nvshen nvshen) {
      this.mynvshen = nvshen;
     }

     public void giveDoll() {
      // TODO Auto-generated method stub
      System.out.println("亲爱的女神。" + mynvshen.getName()
        + "。我是你的头号粉丝,这是送你的洋娃娃。

    ");
     }

     public void giveFlower() {
      // TODO Auto-generated method stub
      System.out.println("亲爱的女神," + mynvshen.getName()
        + "。

    我是你的头号粉丝,这是送你的玫瑰花。

    ");
     }

     public void giveChocolate() {
      // TODO Auto-generated method stub
      System.out.println("亲爱的女神。" + mynvshen.getName()
        + "。我是你的头号粉丝,这是送你的巧克力。");
     }

    }

    Proxy.java
    public class Proxy implements Pursue {
     Pursuer p;
     public Proxy(Nvshen nvshen){
      p = new Pursuer(nvshen);
     }
     public void giveDoll() {
      // TODO Auto-generated method stub
      p.giveDoll();
     }

     public void giveFlower() {
      // TODO Auto-generated method stub
      p.giveFlower();
     }

     public void giveChocolate() {
      // TODO Auto-generated method stub
      p.giveChocolate();
     }

    }
    三、总结
    之前知道代理这个词,也用过代理。仅仅是是网络上的代理。还有就是现实中的什么销售代理。

    事实上代码好这些都是一个意思。中间人而已。

    优点吗。就是能够让一个类和还有一个本来不相关的类进行通信,这样就能够不改动源代码了。

  • 相关阅读:
    设计模式
    DOS批处理脚本
    BAT 批处理脚本 教程
    spring4配置文件详解
    软件过程
    error C2440 “static_cast” 无法从“void (__thiscall C* )(void)...
    error C2065: “IDD_DIALOG1”: 未声明的标识符
    在另一个编辑器中打开
    Github 结合 Hexo 搭建轻量博客
    收藏---wordpress搭建出来的blog
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/7298662.html
Copyright © 2011-2022 走看看