博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
代理模式
阅读量:6916 次
发布时间:2019-06-27

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

hot3.png

一、简单理解

所谓代理,就是一个人或者机构代表另一个人或者机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。

  代理模式类图如下:

  在代理模式中的角色:

  ●  抽象对象角色:声明了目标对象和代理对象的共同接口,这样一来在任何可以使用目标对象的地方都可以使用代理对象。

  ●  目标对象角色:定义了代理对象所代表的目标对象。

  ●  代理对象角色:代理对象内部含有目标对象的引用,从而可以在任何时候操作目标对象;代理对象提供一个与目标对象相同的接口,以便可以在任何时候替代目标对象。代理对象通常在客户端调用传递给目标对象之前或之后,执行某个操作,而不是单纯地将调用传递给目标对象。

二、实例:租房。

抽象对象角色

public abstract class AbstractObject {    //操作    public abstract void leaseHouse();//租房}
目标对象角色(房东)
public class RealObject extends AbstractObject {    @Override    public void leaseHouse() {        //一些操作        System.out.println("一些操作");    }}
代理对象角色(中介公司):
public class ProxyObject extends AbstractObject{    RealObject realObject = new RealObject();    @Override    public void operation() {        //调用目标对象之前可以做相关操作        System.out.println("before");                realObject.leaseHouse();                //调用目标对象之后可以做相关操作        System.out.println("after");    }}
客户端:
public class Client {    public static void main(String[] args) {        // TODO Auto-generated method stub        AbstractObject obj = new ProxyObject();        obj.leaseHouse();    }}

转载于:https://my.oschina.net/weiweiblog/blog/472820

你可能感兴趣的文章
大地 Ghost Win7Sp1x86 装机版Y9.8
查看>>
Date的简单介绍
查看>>
Windows/Mac跑起XDAG源码
查看>>
C语言字符串操作函数
查看>>
富文本编辑器summernote使用
查看>>
马哥2016全新Linux+Python高端运维班第三周作业
查看>>
linux后台进程启动springboot
查看>>
Seo界神话 360好搜
查看>>
JavaScript闭包
查看>>
datatables服务器端分页
查看>>
用PL/SQL Developer导出表数据的时候,窗口一闪而过解决办法
查看>>
杨辉三角
查看>>
将 Log4j 配置文件放在项目外面
查看>>
nginx日志切割
查看>>
以太坊Dapp终极教程——如何构建一个完整的全栈去中心化应用(二)
查看>>
客户端bug测试贴
查看>>
java web 开发 编码问题详解
查看>>
python写的发邮件的小程序!
查看>>
Linux入门(四)
查看>>
org.tinygroup.dbfilter
查看>>