JAVA设计模式之:代理模式
- 格式:docx
- 大小:10.77 KB
- 文档页数:2
本文由我司收集整编,推荐下载,如有疑问,请与我司联系
JAVA 设计模式之:代理模式
2015/12/30 0 代理模式: 为其他对象提供一种代理以控制对这个对象的访
问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可
以在客户端和目标对象之间起到中介的作用。 静态代理:代理和被代理对象在代
理之前是确定的,都实现相同的接口或继承相同的对象 。
代理模式一般涉及到三种角色对象:抽象角色,代理角色和真实角色。代理角色
起到中介作用。
//抽象角色:通过接口或抽象类声明真实角色实现的业务方法。public interface
Swim {void isSwimming();//要实现的方法(表示正在游泳中)}
//代理角色:实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法
来实现抽象方法,并可以附加自己的操作。public class TimeProxy implements Swim
{private Swim m;public TimeProxy(Swim m){super();this.m=m;};@Overridepublic void
isSwimming() {m.isSwimming();}}
// 真实角色:实现抽象角色,定义真实角色所要实现的业务逻辑,供代理角色调
用。public class Person1 implements Swim {@Overridepublic void isSwimming() {long
startTime = System.currentTimeMillis();System.out.println( 开始进行计时... // 模拟一
个开车中的耗时 操作 try {Thread.sleep(new
Random().nextInt(1000));System.out.println( 正在游泳中... }catch (InterruptedException
e) {e.printStackTrace();}long endTime = System.currentTimeMillis();System.out.println(
计时结束... System.out.println( 耗时时间: (endTime-startTime) 分钟 //本来应该是
毫秒的}}
测试代码:
public class Test {public static void main(String[] args) {Person1 car = new
Person1();TimeProxy p=new TimeProxy(car);p.isSwimming();}}
------运行结果---
开始进行计时...正在游泳中...计时结束...耗时时间:755 分钟