美文网首页
代理模式-Proxy

代理模式-Proxy

作者: Josaber | 来源:发表于2016-12-21 22:41 被阅读0次

    每个模式的名称就表明了该模式的作用,代理模式就是用代理类替代原对象进行一些操作。采用代理类调用原有的方法,可以对原对象产生的结果进行控制。

    举个栗子:

    定义一个接口

    public interface Sourceable { 
        void function();
    }
    

    定义实现类

    public class Source implements Sourceable {
        @Override
        public void function() { 
            System.out.println("function"); 
        }
    }
    

    定义代理

    public class Proxy implements Sourceable {  
      
        private Sourceable source;  
    
        public Proxy(){  
            this.source = new Source();  
        }  
    
        public Proxy(Sourceable source){  
            this.source = source;  
        }  
    
        @Override  
        public void function() {  
            before();  
            source.function();  
            atfer();  
        }  
    
        private void atfer() {  
            System.out.println("after");  
        }  
    
        private void before() {  
            System.out.println("before");  
        }  
    }
    

    详细代码在这里

    总结

    • 代理类实现和目标类相同的接口
    • 代理类的功能由调用目标类功能来实现
    • 在调用功能前后等位置(前、后、前后、catch块)可以添加扩展功能

    相关文章

      网友评论

          本文标题:代理模式-Proxy

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