静态代理模式

一、代理模式概要

  • 代理模式通常包括三部分
    1、 抽象角色:声明真实对象和代理对象的共同接口(或者抽象类);
    2、 代理角色:代理角色内部含有对真实对象的引用,一边操作真实对象,同时代理对象提供与真实对象相同的接口以便在任何时刻都能代替真实对象,另外代理对象在对真实对象操作的的同时,还可以附加其他操作,相当于对真实对象进行了封装;
    3、 真实角色:我们最终引用的角色,即代理对象所代理的角色。

二、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();
    }
}

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容