zoukankan      html  css  js  c++  java
  • 让你一看就明白什么是代理模式java版本_源码下载

    项目结构:

    运行效果:

    ======================================================

    代码部分:

    ======================================================

    /Proxy/src/com/b510/proxy/dao/GiveGift.java

     1 /**
     2  * 
     3  */
     4 package com.b510.proxy.dao;
     5 
     6 /**
     7  * 送礼物interface
     8  * @author hongten(hongtenzone@foxmail.com)
     9  * @date 2013-2-16
    10  */
    11 public interface GiveGift {
    12     /**
    13      * 送洋娃娃
    14      */
    15     public void giveDolls();
    16     /**
    17      * 送鲜花
    18      */
    19     public void giveFlowers();
    20     /**
    21      * 送巧克力
    22      */
    23     public void giveChocolate();
    24 }

    /Proxy/src/com/b510/proxy/dao/impl/Pursuit.java

     1 /**
     2  * 
     3  */
     4 package com.b510.proxy.dao.impl;
     5 
     6 import com.b510.proxy.dao.GiveGift;
     7 import com.b510.proxy.bean.SchoolGirl;
     8 
     9 /**
    10  *追求者
    11  * 
    12  * @author hongten(hongtenzone@foxmail.com)
    13  * @date 2013-2-16
    14  */
    15 public class Pursuit implements GiveGift {
    16 
    17     /**
    18      * 追求者要追求的对象女生
    19      */
    20     private SchoolGirl schoolGirl;
    21 
    22     public Pursuit(SchoolGirl schoolGirl) {
    23         this.schoolGirl = schoolGirl;
    24     }
    25 
    26     @Override
    27     public void giveChocolate() {
    28         System.out.println(schoolGirl.getName() + " give you Chocolate!");
    29     }
    30 
    31     @Override
    32     public void giveDolls() {
    33         System.out.println(schoolGirl.getName() + " give you Dolls!");
    34     }
    35 
    36     @Override
    37     public void giveFlowers() {
    38         System.out.println(schoolGirl.getName() + " give you Flowers!");
    39     }
    40 }

    /Proxy/src/com/b510/proxy/dao/impl/Proxy.java

     1 /**
     2  * 
     3  */
     4 package com.b510.proxy.dao.impl;
     5 
     6 import com.b510.proxy.bean.SchoolGirl;
     7 import com.b510.proxy.dao.GiveGift;
     8 
     9 /**
    10  * 代理(代理就是真实对象的代表)
    11  * @author hongten(hongtenzone@foxmail.com)
    12  * @date 2013-2-16
    13  */
    14 public class Proxy implements GiveGift{
    15 
    16     /**
    17      * 追求者对象
    18      */
    19     private Pursuit pursuit;
    20     
    21     public Proxy(SchoolGirl schoolGirl){
    22         pursuit = new Pursuit(schoolGirl);
    23     }
    24     
    25     @Override
    26     public void giveChocolate() {
    27         pursuit.giveChocolate();
    28     }
    29 
    30     @Override
    31     public void giveDolls() {
    32         pursuit.giveDolls();
    33     }
    34 
    35     @Override
    36     public void giveFlowers() {
    37         pursuit.giveFlowers();
    38     }
    39 
    40 }

    /Proxy/src/com/b510/proxy/bean/SchoolGirl.java

     1 /**
     2  * 
     3  */
     4 package com.b510.proxy.bean;
     5 
     6 /**
     7  * 被追求的女生
     8  * 
     9  * @author hongten(hongtenzone@foxmail.com)
    10  * @date 2013-2-16
    11  */
    12 public class SchoolGirl {
    13 
    14     /**
    15      * 名字
    16      */
    17     private String name;
    18 
    19     public String getName() {
    20         return name;
    21     }
    22 
    23     public void setName(String name) {
    24         this.name = name;
    25     }
    26 }

    /Proxy/src/com/b510/proxy/test/ProxyTest.java

     1 /**
     2  * 
     3  */
     4 package com.b510.proxy.test;
     5 
     6 import com.b510.proxy.bean.SchoolGirl;
     7 import com.b510.proxy.dao.impl.Proxy;
     8 
     9 
    10 /**
    11  * 为别人做嫁衣  ---- 代理模式 <br>
    12  * 一个追求者(Pursuit)喜欢一个名字叫娇娇的女生(SchoolGirl),但是自己又不主动去向人家女生表白<br>
    13  * 这个追求者(Pursuit)就想出了一个办法,就是叫一个daili(Proxy)的人向人家女生送东西(give****()方法)<br>
    14  * 
    15  * 出处:《大话设计模式》 程杰 著
    16  * @author hongten(hongtenzone@foxmail.com)
    17  * @date 2013-2-16
    18  */
    19 public class ProxyTest {
    20 
    21     public static void main(String[] args) {
    22         //学校有一个名字叫"娇娇"的女生(SchoolGirl)
    23         SchoolGirl schoolGirl = new SchoolGirl();
    24         schoolGirl.setName("娇娇");
    25         
    26         //一个叫(Proxy)daili的男生帮助另一个人追求者(Pursuit)追求这个名叫娇娇的女生
    27         Proxy daili = new Proxy(schoolGirl);
    28         daili.giveChocolate();
    29         daili.giveDolls();
    30         daili.giveFlowers();
    31         
    32     }
    33     
    34 }

     源码下载https://files.cnblogs.com/hongten/Proxy.zip

  • 相关阅读:
    Java-Class-FC:java.lang.StringBuilder.java
    Java-Class-C:com.github.pagehelper.PageInfo.java
    Java-Class-C:com.github.pagehelper.PageHelper.java
    Java-Class-E:org.springframework.http.HttpStatus.java
    Java-Class-@I:io.swagger.annotation.ApiParam.java
    Java-Class-I:javax.servlet.http.HttpServletRequest.java
    Java-Class-C:java.util.BigDecimal.java
    Code-日期-Java-Class-C:cn.hutool.core.date.DateUtil.java
    MongoDB,还有一个角度看数据
    飘逸的python
  • 原文地址:https://www.cnblogs.com/hongten/p/hongten_proxy.html
Copyright © 2011-2022 走看看