内容简介:我们来看下装饰者模式的UML图:
一、什么是代理模式
代理模式: 为其他对象提供一种代理以控制对这个对象的访问 。简单来说这就是给目标对象生成一个代理对象,并由代理对象控制对目标对象的引用。
我们来看下装饰者模式的UML图:
二、代理模式的构成
-
Subject(抽象主题角色 ):它声明了真实主题和代理主题的共同接口;
-
Proxy(代理主题角色) :实现了抽象主题,它拥有对真实主题的引用,这样它就可以操作真实的主题对象;
-
RealSubject(真实主题角色) :实现了抽象主题,里面实现了具体的业务操作;
三、实例演示
我们来写一个简单的Demo,我们就以代购化妆品为例写一个例子。
创建一个化妆品的接口
public interface Cosmetics {
void BuyCosmetics();
}复制代码
创建一个真实的主题
public class Me implements Cosmetics{
@Override
public void BuyCosmetics() {
System.out.println("我想买韩国的韩妆品,但是我没法出国怎么办?");
}
}复制代码
代理主题角色
public class Proxy implements Cosmetics {
private Me me;
@Override
public void BuyCosmetics() {
if (me == null) {
me = new Me();
}
me.BuyCosmetics();
// 代理增强的方法
proxys();
}
public void proxys() {
System.out.println("我去帮你买吧!");
}
}复制代码
来写一下测试类
public class Test {
public static void main(String[] args) {
Proxy proxy = new Proxy();
proxy.BuyCosmetics();
}
}复制代码
结果
四、模式总结
通过上面的介绍我们对代理模式有了一个简单的了解,那么你可能享问代理模式有哪些实际的应用呢?其实我们每天使用电脑就无时无地的在使用代理模式,我们有很多的电脑应用,问了更方便快捷的打开应用,一般都会发送一个快捷方式到桌面,那么这个快捷方式就是一个典型的代理模式。
那么你还知道其他典型的代理模式嘛?
以上所述就是小编给大家介绍的《设计模式之-代理模式》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
数据资本时代
Viktor Mayer-Schnberger / 李晓霞、周涛 / 中信出版集团股份有限公司 / 2018-11-1 / CNY 58.00
【编辑推荐】 大数据除了能对我们的生活、工作、思维产生重大变革外,还能够做什么?畅销书《大数据时代》作者舍恩伯格在新书《数据资本时代》中,展示了大数据将如何从根本上改变经济——这并不是因为数据是一种新型石油,而是因为数据是一种新型润滑脂,它将给市场带来巨大能量,给公司带来巨大压力,使金融资本的作用大大削弱。赢家是市场,而并非资本。 这本书在当下国内出版,可以说恰逢其时。时下,中国经济正......一起来看看 《数据资本时代》 这本书的介绍吧!