2019独角兽企业重金招聘Python工程师标准>>>

代理模式可以做很多事,像hibernate,spring都使用了代理模式。

spring的aop就是用代理做的。

本系列分为4章,静态代理,动态代理热身,动态代理,cglib代理

今天先写一写静态代理

本例目的是在要调用的方法前后输出start和end,会使用四个类

接口HelloInterface

接口实现类HelloInterfaceImpl

静态代理类HelloStaticProxy

测试类HelloTest

首先写一个接口HelloInterface,定义一个say方法

package net.hldh.river.staticproxy;/*** Created by liuhj on 2015/12/1.*/
public interface HelloInterface {public void say();
}

实现接口HelloInterfaceImpl,打印Hello

package net.hldh.river.staticproxy;/*** Created by liuhj on 2015/12/1.*/
public class HelloInterfaceImpl implements HelloInterface {@Overridepublic void say() {System.out.println("Hello");}
}

代理类HelloStaticProxy实现,在代理的方法内加前后环绕,是不是很像AOP

package net.hldh.river.staticproxy;/*** Created by liuhj on 2015/12/1.*/
public class HelloStaticProxy{//spring 依赖注入?类似吧private HelloInterface helloInterface;public HelloStaticProxy(HelloInterface helloInterface){this.helloInterface = helloInterface;}public void say_proxy(){System.out.println("start");helloInterface.say();System.out.println("end");}
}

编写测试类HelloTest

package net.hldh.river.staticproxy;/*** Created by liuhj on 2015/12/1.*/
public class HelloTest {public static void main(String args[]){HelloStaticProxy proxy = new HelloStaticProxy(new HelloInterfaceImpl());proxy.say_proxy();}
}

输出结果

start
Hello
end

静态代理呢,使用的不是太多,主要是当你要修改接口或者其他方法时要修改代理类实现类等好多方法,好麻烦

下一章主要写写动态代理前需要知道的知识

才疏学浅,如有错误敬请指出,谢谢。

转载于:https://my.oschina.net/u/2519530/blog/538081

Java代理系列-静态代理相关推荐

  1. Java、Android静态代理与动态代理

    代理 (1) 什么是代理? 大道理上讲代理是一种软件设计模式,目的地希望能做到代码重用.具体上讲,代理这种设计模式是通过不直接访问被代理对象的方式,而访问被代理对象的方法.这个就好比 商户----&g ...

  2. Java代理系列-动态代理

    2019独角兽企业重金招聘Python工程师标准>>> 动态代理可以做什么?比如说spring的AOP,它就是以动态代理为基础实现的,AOP拦截需要的请求,然后通过代理把请求的结果返 ...

  3. Java代理模式/静态代理/动态代理

    代理模式:即Proxy Pattern,常用的设计模式之一.代理模式的主要作用是为其他对象提供一种代理以控制对这个对象的访问. 代理概念 :为某个对象提供一个代理,以控制对这个对象的访问. 代理类和委 ...

  4. Java设计模式之代理(动态代理,静态代理)

    代理设计模式,是一种常用的设计模式.顾名思义,在面向对象的世界中,就是一个对象对另一个对象的代理. 如现实生活中,处处都是代理,中介是对业主的代理,王婆是对金莲的代理,经纪人至于艺人的代理,销售代理等 ...

  5. 第六周 Java语法总结_设计原则_工厂模式_单例模式_代理模式(静态代理_动态代理)_递归_IO流_网络编程(UDP_TCP)_反射_数据库

    文章目录 20.设计原则 1.工厂模式 2.单例模式 1)饿汉式 2)懒汉式 3.Runtime类 4.代理模式 1)静态代理 2)动态代理 动态代理模板 21.递归 22.IO流 1.File 2. ...

  6. 代理模式(Java版)-静态代理、JDK动态代理和CGLib动态代理

    代理模式前传 前几天有个小朋友问到我代理模式,这个我拿手的嘛.废话不多说,直接开讲?这是不可能的. 一般呢,讲模式之前呢,礼貌上都要讲个前传.象我这种老了根本不怕没有故事祭奠的人,随手一个前传开始. ...

  7. Java设计模式之静态代理和动态代理(简单例子)

    1.代理模式 一个生活中的例子:明星都有一个自己的经纪人,这个经纪人就是他们的代理人. 当我们需要找明星表演时,不能直接找到该明星,只能是找明星的代理人.比如张学友在没有出名之前,我们可以直接找他唱歌 ...

  8. java 动态代理与静态代理

    代理在生活中比较常见,比如常见的代理商,对工厂进行代理,工厂专注生产,代理商负责经销,用户购买商品从代理商手中购买.java中代理分为动态代理与静态代理,其中动态代理比较常见的有jdk动态代理和cgl ...

  9. 【Android 插件化】Hook 插件化框架 ( Hook 技术 | 代理模式 | 静态代理 | 动态代理 )

    Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...

最新文章

  1. 《结对-贪吃蛇游戏-最终程序》
  2. [华为机试练习题]55.最大公约数 amp; 多个数的最大公约数
  3. 【ASP.NET】服务器控件大演练与实例分析
  4. 测试并发应用(七)配置Eclipse来调试并发代码
  5. IOS学习笔记——Objective-c基础(一)
  6. linux mysql复制一个表结构图_详解Windows和Linux下从数据库导出表结构,以及Linux下如何导入.sql文件到MySQL数据库...
  7. 用VC++制作MSN、QQ 的消息提示窗口
  8. 开门红讨采头,开工喜庆红色PSD分层海报模板
  9. 去除主页ImageView图片的上下空白
  10. u盘装服务器系统还原c盘失败,云骑士一键重装系统win10还原c盘失败怎么办
  11. 爱普生l360扫描仪显示无法连接计算机,USB连接喷墨机,启动Epson scan提示无法与扫描仪连接如何解决?...
  12. google保存网页为图片
  13. 服务端验证防水墙验证码向远程发送请求并验证的方法
  14. Dell服务器的iDRAC虚拟控制台无法连接
  15. 人工神经网络有哪些算法,神经网络都有哪些算法
  16. 提高网络营销的转化只需掌握这四步
  17. 汽车驱动桥毕业设计【毕业设计(论文) +7张CAD图纸】
  18. STM32电路原理图
  19. 【踩坑笔记】从零开始部署安装Stable Diffusion 2 WebUI
  20. 手摸手教学 - Docker(五) 超级爽!持久化数据库-bind mounts!

热门文章

  1. Linux中fdisk对应的c函数,linux下fdisk命令实战案例之详解
  2. java spring 多数据库_java – 使用多个数据源/数据库的Spring-Hibernate
  3. 大学计算机需要论文吗,关于大学计算机论文范文.docx
  4. 权限管理系统_在Gitee狂揽11K Star!这个SpringCloud的权限管理系统你必须知道
  5. javascript date php date,JavaScript Date 知识浅析
  6. 我两小时学完指针,你学会数组/指针与函数需要多久?
  7. 如何在 Linux 中快速地通过 HTTP 提供文件访问服务
  8. C++ ACM模式输入输出
  9. dbv mysql_MariaDB与MySQL对比 --- 对分布式事务的支持
  10. python 定义变量_python-003-变量