Proxy interface: public interface ProxyInterface {public abstract void action ();} real role: public class RealObject implements ProxyInterface {@ Overridepublic void action () {// TODO Auto-generated method stubSystem. out. println ("Real Action method! ") ;}} Proxy role public class ProxyObject implements ProxyInterface {private RealObject realObject; // real role in proxy role @ Overridepublic void action () {// TODO Auto-generated method stubBeforeAction (); if (null = realObject) {realObject = new RealObject ();} realObject. action (); AfterAction ();} private void BeforeAction () {System. out. println ("do something before Action of RealObject");} private void AfterAction () {System. Out. println ("do something after Action of RealObject") ;}} test class: public class ProxyTest {public static void main (String [] args) {ProxyObject proxyObject = new ProxyObject (); // only the proxy role, proxyObject, can be obtained. action () ;}} test result; do something before Action of RealObjectReal Action method! Do something after Action of RealObject