美文网首页
静态代理模式

静态代理模式

作者: 鉴闻俗说 | 来源:发表于2017-11-29 22:02 被阅读0次

    一、代理模式概要

    • 代理模式通常包括三部分
      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();
        }
    }
    

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

    相关文章

      网友评论

          本文标题:静态代理模式

          本文链接:https://www.haomeiwen.com/subject/mozpbxtx.html