package com.youyj.proxy;
/**
* 代理对象和目的对象之间的关系
* @author Administrator
*
*/
interface Subject
{
public void request();
}
/**
* 目标对象
* @author Administrator
*
*/
class RealObject implements Subject
{
@Override
public void request()
{
System.out.println("我是真实的对象");
}
}
/**
* 代理对象
* @author Administrator
*
*/
class ProxyObject implements Subject
{
private RealObject realObj;
public void request()
{
if (null == realObj)
{
realObj = new RealObject();
}
proMethod();
realObj.request();
afterMethod();
}
public void proMethod()
{
System.out.println("调用真实对之前做的事情");
}
public void afterMethod()
{
System.out.println("调用真实对之后做的事情");
}
}
public class ProxyDemo
{
/**
* @param args
*/
public static void main(String[] args)
{
Subject subObj = new ProxyObject();
subObj.request();
}
}