博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《大话设计模式》--代理模式
阅读量:5955 次
发布时间:2019-06-19

本文共 1493 字,大约阅读时间需要 4 分钟。

题目:一个男孩让另一个男孩代理去送一个女孩礼物

public class SchoolGirl {    private String name;    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }}

 

public interface GiveGift {    void giveDoll();    void giveFlower();    void giveChocolate();}

 

public class Pursuit implements GiveGift {    SchoolGirl mm;    public Pursuit(SchoolGirl mm) {        this.mm = mm;    }    @Override    public void giveDoll() {        System.out.println(mm.getName() + "送你洋娃娃");    }    @Override    public void giveFlower() {        System.out.println(mm.getName() + "送你鲜花");    }    @Override    public void giveChocolate() {        System.out.println(mm.getName() + "送你巧克力");    }}

 

public class Proxy implements GiveGift {    Pursuit gg;    public Proxy(SchoolGirl mm) {        gg = new Pursuit(mm);    }    @Override    public void giveDoll() {        gg.giveDoll();    }    @Override    public void giveFlower() {        gg.giveFlower();    }    @Override    public void giveChocolate() {        gg.giveChocolate();    }}
public class Action {    public static void main(String args[]) {        SchoolGirl jiaojiao = new SchoolGirl();        jiaojiao.setName("李娇娇");        Proxy daili = new Proxy(jiaojiao);        daili.giveDoll();        daili.giveFlower();        daili.giveChocolate();    }}

 

打印结果:

李娇娇送你洋娃娃李娇娇送你鲜花李娇娇送你巧克力

 

原理就是:

1.Pursuit和Proxy都实现了GiveGift接口,但Proxy中实际调用的也是Pursuit的方法

2.Proxy的构造函数也是为了生成Pursuit的对象

3.所以在Action中,我们只看到了Proxy在忙来忙去,Pursuit被隐藏了起来

转载地址:http://mvexx.baihongyu.com/

你可能感兴趣的文章
Linux及windows下常见压缩程序的压缩能力对比
查看>>
JAVAEE-junit测试hibernate里的方法(hibernate交给spring管理)的问题
查看>>
MOTO MB860 国行2.3.5优化增强ROM_Top_T5_end(经典收藏版)
查看>>
C#学习经典(二)---MVC框架(Model view Controller)
查看>>
log4j配置文件说明
查看>>
Maven: 为Compiler插件设置source和target版本
查看>>
linux下永久添加静态路由
查看>>
android 全局变量和局部变量命名规则
查看>>
Ubuntu Sub-process /usr/bin/dpkg
查看>>
详解DNS的常用记录(下):DNS系列之三
查看>>
linux的日志服务器关于屏蔽一些关键字的方法
查看>>
事情的两面性
查看>>
只要会营销,shi都能卖出去?
查看>>
sed单行处理命令奇偶行输出
查看>>
走向DBA[MSSQL篇] 从SQL语句的角度 提高数据库的访问性能
查看>>
VC++深入详解学习笔记1
查看>>
安装配置discuz
查看>>
CentOS7 64位小型操作系统的安装
查看>>
线程互互斥锁
查看>>
KVM虚拟机&openVSwitch杂记(1)
查看>>