Java设计模式之静态代理模式实例分析

所属分类: 软件编程 / java 阅读数: 30
收藏 0 赞 0 分享

本文实例讲述了Java设计模式之静态代理模式。分享给大家供大家参考,具体如下:

代理模式,可以通过代理可以在原来的基础上附加一些其他的操作。静态代理模式相对比较简单无需再程序运行时动态的进行代理。

静态代理模式的角色:

① 抽象角色:真实对象和代理对象的共同接口。其中声明真实对象和代理对象需要做的事。
② 真实角色:实现抽象角色,定义真实角色所要实现的业务逻辑,供代理角色调用。
③ 代理角色:实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自己的操作。

下面提供一个简单的静待代理的示例代码:

1. 抽象角色:真实对象和代理对象的共同接口。其中声明真实对象和代理对象需要做的事。

package com.tydic.proxy;
/**
 * 真实角色和代理角色的共同接口
 * @author Administrator
 *
 */
public abstract class Subject {
  //真实对象和代理对象需要做的事
  public abstract void request();
}

2. 真实角色:需要实现抽象角色,是被代理的对象。

package com.tydic.proxy;
/**
 * 真实角色
 * @author Administrator
 *
 */
public class RealSubject extends Subject {
  @Override
  public void request() {
    System.out.println("from real subject!");
  }
}

3. 代理角色:实现抽象角色,并持有一个真实角色的引用。

package com.tydic.proxy;
/**
 * 代理角色
 * @author Administrator
 *
 */
public class ProxySubject extends Subject {
  private RealSubject realSubject;//代理角色内部引用了真实角色
  @Override
  public void request() {
    this.preRequest();//在真实对象操作之前所附加的操作
    if(null == realSubject){
      realSubject = new RealSubject();
    }
    realSubject.request();//真实角色完成的事情
    this.postRequest();//在真实对象操作之后附加的操作
  }
  private void preRequest(){
    System.out.println("pre request!");
  }
  private void postRequest(){
    System.out.println("post request!");
  }
}

4. 编写客户端代码

package com.tydic.proxy;
public class Client {
  public static void main(String[] args) {
    Subject subject = new ProxySubject();
    subject.request();
  }
}

更多java相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总

希望本文所述对大家java程序设计有所帮助。

更多精彩内容其他人还在看

java实现背单词程序

这篇文章主要为大家详细介绍了java实现背单词程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

java实现单词查询小程序

这篇文章主要为大家详细介绍了java实现单词查询小程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Java程序开发环境配置图文教程

这篇文章主要为大家详细介绍了Java程序开发环境配置图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

详解ssh框架原理及流程

在本文中小编给大家整理的是关于ssh框架原理及流程的相关知识点内容,有此需要的朋友们可以学习下。
收藏 0 赞 0 分享

Java实现弹窗效果的基本操作

这篇文章主要为大家详细介绍了Java实现弹窗效果的基本操作,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

详解springmvc常用5种注解

在本篇里我们给大家总结了关于springmvc常用5种注解相关知识点以及实例代码,需要的朋友们参考下。
收藏 0 赞 0 分享

Java实现弹窗效果的基本操作(2)

这篇文章主要为大家详细介绍了Java实现弹窗效果的基本操作第二篇,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Spring Boot假死诊断实战记录

这篇文章主要给大家介绍了关于Spring Boot假死诊断的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Spring Boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

Java计时新姿势StopWatch详解

这篇文章主要介绍了Java计时新姿势StopWatch,最近公司来了个大佬,从他那里学到不少东西,其中一个就是计时的新姿势「StopWatch」,需要的朋友可以参考下
收藏 0 赞 0 分享

java实现点击按钮弹出新窗体功能

这篇文章主要为大家详细介绍了java实现点击按钮弹出新窗体功能,旧窗体不进行操作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享
查看更多