代理模式(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)的主要内容,如果未能解决你的问题,请参考以下文章