Java设计代理模式之代理模式(Proxy Pattern)
2016-05-05 09:11
537 查看
当一组对象实现了一个接口之后,想调用接口中没有的方法,就需要用到代理类,而不是将每个对象中都添加该方法。
1.概念
为其他对象提供一种代理以控制对这个对象的访问。
2.UML图:
3.代码:
//抽象角色:
public abstract class Subject
{
abstract public void request();
}
//真实角色:实现了Subject的request()方法。
public class RealSubject extends Subject
{
public void request()
{
System.out.println("From real subject.");
}
}
//代理角色:
public class ProxySubject extends Subject
{
private RealSubject realSubject; //以真实角色作为代理角色的属性
public void request() //该方法封装了真实对象的request方法
{
if( realSubject == null )
{
realSubject = new RealSubject();
}
realSubject.request(); //此处执行真实对象的request方法
}
}
//客户端调用:
Subject sub=new ProxySubject();
Sub.request();
4.应用场景:
代理服务器
1.概念
为其他对象提供一种代理以控制对这个对象的访问。
2.UML图:
3.代码:
//抽象角色:
public abstract class Subject
{
abstract public void request();
}
//真实角色:实现了Subject的request()方法。
public class RealSubject extends Subject
{
public void request()
{
System.out.println("From real subject.");
}
}
//代理角色:
public class ProxySubject extends Subject
{
private RealSubject realSubject; //以真实角色作为代理角色的属性
public void request() //该方法封装了真实对象的request方法
{
if( realSubject == null )
{
realSubject = new RealSubject();
}
realSubject.request(); //此处执行真实对象的request方法
}
}
//客户端调用:
Subject sub=new ProxySubject();
Sub.request();
4.应用场景:
代理服务器
相关文章推荐
- 一行代码实现java list去重
- 在MAC上查找和设置$JAVA_HOME
- JAVA自定义注解(小例子)
- Java Web编程之Servlet技术详解
- 《java入门第一季》之面向对象(重头戏继承来了)
- 《java入门第一季》之面向对象(重头戏继承来了)
- Java 容器(二) List
- hive启动时报Exception in thread "main" java.lang.NoClassDefFoundError错误
- Java虚拟机类加载器之------类与类加载器
- 全面解析Java中的注解与注释
- Java Integer.highestOneBit(i)代码品读
- 《java入门第一季》之面向对象(代码块一网打尽)
- 《java入门第一季》之面向对象(代码块一网打尽)
- eclipse快捷键
- java 内部类的使用
- java学习-22天
- 《java入门第一季》之面向对象(如何使用帮助文档)
- 《java入门第一季》之面向对象(如何使用帮助文档)
- Java EE中使用session实现购物车功能
- java中没有无符号类型的循环办法