代理模式(Proxy)

Posted 技术专家

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代理模式(Proxy)相关的知识,希望对你有一定的参考价值。

代理模式(Proxy)


代理模式:简单明了。简称代理商,对代理这个词想必大家都不陌生,现在微信上,几乎全是各种代理商,哈哈哈。。。不错。我们的代理模式,也是如此。用java语言来说。就是,替原对象进行一些操作。比如:律师,打官司人家比咱们懂,因此代理模式也是如此,它可以替我们进行一些操作。

废话少说。直接代码走起,

public interface hundsun {  
    public void method();  
}

public class baofoo implements hundsun{  
  
    @Override  
    public void method() {  
        System.out.println("the original method!");  
    }  
}  

public class Proxy hundsun {  
  
    private baofoo source;  
    public Proxy(){  
        super();  
        this.source = new baofoo();  
    }  
    @Override  
    public void method() {  
        before();  
        source.method();  
        atfer();  
    }  
    private void atfer() {  
        System.out.println("after proxy!");  
    }  
    private void before() {  
        System.out.println("before proxy!");  
    }  
}    


测试
public class ProxyTest {  
  
    public static void main(String[] args) {  
        hundsun source = new Proxy();  
        source.method();  
    }  

结果输出

输出:

before proxy!
the original method!
after proxy!

总结:

代理模式的应用场景:

如果已有的方法在使用的时候需要对原有的方法进行改进,此时有两种办法:

1、修改原有的方法来适应。这样违反了“对扩展开放,对修改关闭”的原则。

2、就是采用一个代理类调用原有的方法,且对产生的结果进行控制。这种方法就是代理模式。

使用代理模式,可以将功能划分的更加清晰,有助于后期维护!

其实大家看了我写的这么多设计模式有没有发现一点。java的设计模式大多数。离不开java面向对象的三大特征。封装,继承。多态。这些模式的设计大多数,就是在这三者之间来回转换,来回调用。归其原因,是为什么呢。哈哈哈。。。没错,java有种特殊的机制。向上转型的机制。这些模式的设计归其根本就是利用了。这 种机制来完成我们所说的大多数模型。既然什么技术都没有用到。然而仅仅是写法不同,设计出来的也不一样。因此。在这里再次告诫大家。一定搞懂需求的情况下。再去设计。因为这直接关乎着你这整个系统的维护性,易用性。健壮性,灵活性。因此,需要深刻领悟六大设计原则。

 

哈哈哈。。。 错别字在所难免。领悟含义就行了。

 

以上是关于代理模式(Proxy)的主要内容,如果未能解决你的问题,请参考以下文章

代理模式(Proxy)

Proxy模式(代理[延迟]模式)

12-代理(Proxy)模式Ruby实现

代理模式(Proxy)

代理模式(Proxy)

设计模式之代理模式 Proxy