• 第七话-代理模式


    

    谈恋爱啊谈恋爱。

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

    有点拗口。事实上就是中间人而已。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();
     }

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

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

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

  • 相关阅读:
    自行编译spark适配CDH 6.3.2的sparksql
    大数据平台架构Lambda、Kappa、SMACK
    C++笔记Atomic原子操作/CAS(Compare and Swap)
    Java 在 IntelliJ IDEA 中提示 set the language level 9
    Java 初始化 List 的几种方法
    MariaDB 的自增字段 AUTO_INCREMENT 字段
    @Import、@ImportAutoConfiguration 到底有什么区别?
    RabbitMQ 原理解析
    Centos7如何配置MySQL远程连接
    CentOS7 安装并配置 MySQL8.0
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/7298662.html
Copyright © 2020-2023  润新知