易截截图软件、单文件、免安装、纯绿色、仅160KB

Java 之代理模式

 代理模式
代理模式的作用: 为其他对象提供一种代理以控制对这个对象的访问,在某些情况下,一个客户不想或者不能直接引用另一个对象,
而代理对象可以在客户端和目标对象之间起到 中介 的作用
举一个例子: 某一个人想请一个局长为他办一些事情,这个人可能不能直接去这个局长,因为局长不认识他,即使客户给他送礼或一些钱,局长也不会收,这时候怎么办?客户可以先去找局长的秘书或身边红人,局长秘书当然啦,跟局长比较密切,
这个客户他认识这个秘书,他通过秘书,告诉这个秘书,我要想请局长办些什么事情由这个秘书去让局长去做这个事情,他呢,把一些送礼啊,礼品啊送给秘书,由秘书转交给局长局长收到秘书给他的礼物之后,他就可以为这个人办些事情,这时候秘书就相当于是中介。
抽象角色:想办事的人 
代理角色:秘书 
真实角色:局长,他具有完成所需要的功能
1.示例
主要实现代码,分 4 步:
第一步 抽象角色:
Subject.java
abstract public class Subject{ abstract public void request();}
第二步代理角色:
ProxySubject.java
public class ProxySubject{
 private RealSubject realSubject;  //以真实角色作为代理角色的属性
 public ProxySubject(){}
    public void request(){  //该方法封装了真实对象的request方法
 preRequest();
 if(realSubject == null)
 {
      realSubject = new RealSubject();
 }
 realSubject.request();   //此处执行真实对象的request方法,这句体现了代理思想
 postRequest();
 }
 private void preRequest(){
    System.out.println("hello");
}
 private void postRequest(){
    System.out.println("world");
}
   }
第三步 真实角色
RealSubject.java
public class RealSubject{
        public RealSubject(){}
 public void request(){
   System.out.println("from real request");
      }
}
第四步 客户端调用:
Client.java
public class Client{
 public static void main(String[] args){
    Subject sub = new ProxySubject();
    sub.


相关文档:

java入门

 Java学习从入门到精通 
一、 JDK (Java Development Kit) 
JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。最主流的J ......

JAVA NIO 中文1

 
If the requested address is not a valid virtual memory address (it doesn't belong to any of
the memory segments of the executing process), the page cannot be validated, and
a segmentation fault is generated. This vectors control to another part of the kernel and
usually results in the pro ......

Java 技术是什么?

Java 技术是什么?
Java 技术既是一种高级的面向对象的编程语言,也是一个平台。Java 技术基于 Java 虚拟机(Java virtual machine,JVM)的概念 —— 这是语言与底层软件和硬件之间的一种转换器。Java 语言的所有实现都必须实现 JVM,从而使 Java 程序可以在有 JVM 的任何系统上运行。
Java 编程语言(Java p ......

我的java学习日记

    String phoneEL="[0-9]{4}-[0-9]{6}";
    String urlEl="<a.+href*=*['\"]?.*?['\"]?.*?>";
    String emailEl="^[_a-z0-9-]+(.[_a-z0-9-]+)*"+"@[a-z0-9-]+([.][a-z0-9-]+)*$"; ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号