自学内容网 自学内容网

设计模式:22、代理模式

目录

0、定义

1、代理模式的三种角色

2、代理模式的UML类图

3、示例代码


0、定义

        为其他对象提供一种代理以控制对这个对象的访问。

1、代理模式的三种角色

  • 抽象主题(Subject):抽象主题是一个接口,该接口是对象和它的代理所共用的接口,即是实际主题角色和代理角色实例所实现的接口。
  • 实际主题(RealSubject):实际主题是实现抽象主题接口的类。实际主题的实例是代理角色(proxy)实例所要代理的对象。
  • 代理(Proxy):代理是实现抽象主题的类。代理含有主题接口声明的变量,该变量用来存放实际主题角色的实例引用,这样一来,代理的实例就可以控制对它所包含的实际主题角色的实例访问,即可以控制对它所代理对象的访问。

2、代理模式的UML类图

3、示例代码

抽象主题

package xyz.jangle.design.proxy;

public interface Subject {

public void request();

}

 具体主题

package xyz.jangle.design.proxy;

public class AppMain22 {

public static void main(String[] args) {

Proxy proxy = new Proxy();
proxy.request();

}

}

代理

package xyz.jangle.design.proxy;

public class Proxy implements Subject {

private Subject subject;

Proxy(){
subject = new RealSubject();
}

@Override
public void request() {
subject.request();
}

}

客户端(使用)

package xyz.jangle.design.proxy;

public class AppMain22 {

public static void main(String[] args) {

Proxy proxy = new Proxy();
proxy.request();

}

}

输出结果

to do something 


原文地址:https://blog.csdn.net/Bof_jangle/article/details/144354481

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!