设计模式之静态代理模式
来源:互联网 发布:机器人单片机 编辑:程序博客网 时间:2024/06/05 06:30
像平时租房子时,不用自己一间一间的找,一般都是找到中介,给中介说我要租什么样的房子,比如大小,房屋的朝向,有没有独卫等等,中介就直接帮我们找好了。中介在这里就扮演代理的角色,我们租房子的就是真实角色。
静态代理也有一些要求:1.要有真实角色。2.要有代理角色。3.两者实现相同的接口,向代理传入真实角色的引用。4.调用代理的方法。
写一个小例子
package com.staticProxy;public class StaticProxy {public static void main(String[] args) {//创建真实角色Marry you = new You();//创建代理角色+真实角色的引用Marry weddingCompany = new WeddingCompany(you);//调用weddingCompany.marry();}}//共同的接口interface Marry{void marry();}//真实角色class You implements Marry{@Overridepublic void marry() {System.out.println("you and 嫦娥结婚了。。。。");}}//代理角色class WeddingCompany implements Marry{private Marry you;//空构造函数public WeddingCompany() {}//带参构造函数public WeddingCompany(Marry you) {this.you = you;}private void before(){System.out.println("布置猪窝。。。");}private void after() {System.out.println("闹伴娘玉兔。。。");}@Overridepublic void marry() {before();you.marry();after();}}运行出来是
布置猪窝。。。you and 嫦娥结婚了。。。。闹伴娘玉兔。。。结婚的还是你自己。
我们写多线程时,也是用到了静态代理,实现Runnable接口,重写run()方法,然后创建代理对象Thread,调用start()方法。这里面的代理jdk帮我们写好了,不用自己写。
package com.staticProxy;public class ProgrammerApp {public static void main(String[] args) {//1.真实角色Programmer pro = new Programmer();//2.代理角色+真实角色的引用Thread t = new Thread(pro);//3.调用start() 启动线程t.start();for (int i = 0; i < 100; i++) {System.out.println("一边聊天。。。。");}}}class Programmer implements Runnable{@Overridepublic void run() {for (int i = 0; i < 100; i++) {System.out.println("一边编写代码。。。。");}}}
阅读全文
1 0
- 设计模式之代理模式-静态代理
- 设计模式之代理模式(静态代理)
- 设计模式之代理模式------静态代理
- 设计模式之静态代理设计模式
- 设计模式之静态代理
- 设计模式之静态代理
- 设计模式之静态代理
- java设计模式之静态代理模式
- 设计模式之静态代理模式
- java 设计模式之静态代理模式
- 设计模式之三静态代理模式
- 设计模式之静态代理模式
- 设计模式之静态代理模式实战
- JAVA设计模式之静态代理模式
- 设计模式之静态代理&动态代理
- 设计模式之代理模式--静态代理和动态代理
- 设计模式之——代理模式(静态代理)
- 设计模式之Proxy–静态代理(代理模式)
- 最短路径问题的概述
- 2017.8.19结构体整理(对照类理解异同)
- 欢迎使用CSDN-markdown编辑器
- 面团点评笔试:整数加法
- Python 2 to 3
- 设计模式之静态代理模式
- 读《大道至简》有感
- iOS 一一 自定义cell按钮的点击事件(通知机制)
- 第三天:css选择器的优先级、Adobe photoshop CS6软件、html初步布局
- 采用lombok简化代码
- node.js遇到的错误
- Spring Boot 视频
- spring schema 扩展(NamespaceHandler,BeanDefinitionParser)
- 分布式系统中的必备良药 —— 服务治理