静态代理模式

2017-11-29  本文已影响0人  鉴闻俗说

一、代理模式概要

二、Demo说明

//Subject.java  //抽象角色
//RealSubject.java //真实角色
//ProxySubject.java //代理角色
//Client.java   //客户端

1、Subject.java

public abstract class Subject
{
    public abstract void request();
}

2、RealSubject.java

public class RealSubject extends Subject
{
    @Override
    public void request()
    {
        System.out.println("From real Subject!");
        
    }
}

3、ProxySubject.java

public class ProxySubject extends Subject
{
    private RealSubject realSubject;
    
    @Override
    public void request()
    {
        this.preRequest();  //代理之前执行的动作
        
        if (realSubject == null)
        {
            realSubject = new RealSubject();
        }
        realSubject.request();
        
        this.postRequest(); //代理之后执行的动作
    }
    
    public void preRequest()
    {
        System.out.println("Pre Request!");
    }
    
    public void postRequest()
    {
        System.out.println("Post Requset!");
    }
}

4、Client.java

public class Client
{
    public static void main(String[] args)
    {
        Subject subject = new ProxySubject();
        subject.request();
    }
}

上一篇:动态调用私有域和私有方法
下一篇:动态代理模式

上一篇 下一篇

猜你喜欢

热点阅读