zoukankan      html  css  js  c++  java
  • 代理模式(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有种特殊的机制。向上转型的机制。这些模式的设计归其根本就是利用了。这 种机制来完成我们所说的大多数模型。既然什么技术都没有用到。然而仅仅是写法不同,设计出来的也不一样。因此。在这里再次告诫大家。一定搞懂需求的情况下。再去设计。因为这直接关乎着你这整个系统的维护性,易用性。健壮性,灵活性。因此,需要深刻领悟六大设计原则。

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

  • 相关阅读:
    (办公)记事本_Linux常用的文件操作命令
    (办公)记事本_Linux的In命令
    Python、Django、Celery中文文档分享
    Python循环引用的解决方案
    Django中非视图函数获取用户对象
    在Django中使用Sentry(Python 3.6.8 + Django 1.11.20 + sentry-sdk 0.13.5)
    CentOS7安装配置redis
    CentOS7配置ftp
    CentOS7安装docker和docker-compose
    CentOS7安装postgreSQL11
  • 原文地址:https://www.cnblogs.com/huojg-21442/p/6951657.html
Copyright © 2011-2022 走看看