zoukankan      html  css  js  c++  java
  • 1.代理模式

    1.1 代理模式的本质:代理模式其实就是通过中间端连接起客户端和服务端的对话,起到一个非桥梁的连接模式,实现客户端和服务端无沟通,实际就是起到中介的作用,这一整个的过程被称为代理模式。

    1.2 为什么要用代理模式:举个例子,你想买一款美版的Iphone手机,但是如果你自己去买那你就需要办签证买机票,如果你口语不好还要找翻译,这整个的一个过程是很麻烦的。这个时候如果你找海外代购,那么就剩下了很多事,而且本身的你对这些产品可能不太了解,只知道大概,但是呢海外代购会给你详细解释,会帮你仔细挑选。这就是体现到了代理模式。或者说呢,有时候需要保证服务端对象的安全,是不允许客户端去直接访问服务端的,这个时候也是需要代理模式来处理的。

      这样代码模式的优点就体现出来了:1.2.1 降低客户端与服务端的耦合性,减少客户端的操作复杂度

                      1.2.2 扩展目标对象的功能

                      1.2.3 能保护目标对象

      同样的缺点也很明显      :1.2.4 增加系统复杂度

                      1.2.5 因为客户端与服务端中间插入了中介,会降低服务处理效率

    1.3 代理模式的必要模块 

      1.3.1 真实对象 真实引用的对象

      1.3.2 抽象对象 通过接口或抽象类声明真实主题和代理对象实现的业务方法。这个接口或者对象对真实对象和代理对象都有规范作用。

      1.3.3 代理对象 提供了与真实主题相同的接口,其内部含有对真实主题的引用,它可以访问、控制或扩展真实主题的功能。

      1.3.4 客户端

    图片如下:

    代码实现:

    package Daili;
    
    public class DailiTest {
        public static void main(String[] args) {
            Daili daili = new Daili();
            daili.test();
        }
    }
    
    //真实对象
    class RealObj implements Subject {
        public void test() {
            System.out.println("我是真实对象");
        }
    }
    
    //抽象对象
    interface Obj {
        void test();
    }
    
    //代理
    class Daili implements Subject {
        private RealObj realObj;
    
        public void test() {
            if (realObj == null) {
                realObj = new RealObj ();
            }
            beforeTest();
            realObj.test();
            afterTest();
        }
    
        public void beforeTest() {
            System.out.println("访问真实对象之前。");
        }
    
        public void afterTest() {
            System.out.println("访问真实对象之后。");
        }
    }
  • 相关阅读:
    Git常用命令总结
    JavaScript单元测试框架JsUnit基本介绍和使用
    Android Home键监听
    ASP.NET Core on K8S深入学习(3-2)DaemonSet与Job
    你必须知道的Dockerfile
    你必须知道的Docker数据卷(Volume)
    《人人都是产品经理》读书笔记
    ASP.NET Core on K8S深入学习(3-1)Deployment
    ASP.NET Core on K8S深入学习(2)部署过程解析与Dashboard
    .NET Core on K8S学习与实践系列文章 (2020版)
  • 原文地址:https://www.cnblogs.com/mokpiet/p/13724914.html
Copyright © 2011-2022 走看看