• 设计模式(7)---代理模式


    代理模式 Proxy(结构型模式)

    1.概述

    代理模式:为其他对象提供一种代理以控制对这个对象的访问。例如:你需要去买点零食,你不是直接去生产零食的工厂里买,而是去超市或者小卖部里买,超市就可以看成代理。

    代理模式一种比较常见的应用:打开一个有很多图片的网页时,图片可能没有完全加载出来,而是过一会才显示出来。

    2.结构图

    3.代码

    1 public interface Subject {
    2 
    3      public void request();
    4 
    5 }
    1 public class RealSubject implements Subject {
    2 
    3     @Override
    4     public void request() {
    5         System.out.println("买零食");
    6     }
    7 
    8 }
     1 public class Proxy implements Subject {
     2 
     3     private RealSubject realSubject ;
     4     
     5     public Proxy() {
     6         if (realSubject == null)
     7             realSubject = new RealSubject();
     8     }
     9 
    10     @Override
    11     public void request() {
    12         System.out.print("通过代理 在超市    ");
    13         realSubject.request();
    14     }
    15 
    16 }
     1 public class Test {
     2 
     3     public static void main(String[] args) {
     4         Subject proxy = new Proxy() ;
     5         //通过代理 在超市    买零食
     6         proxy.request();
     7         
     8         Subject realSubject = new RealSubject();
     9         //买零食
    10         realSubject.request();
    11     }
    12 
    13 }

    4.适用场景

    (1)代理一些开销很大的对象,这样便能迅速返回,进行其他操作,只有在真正需要时才去实例化。

    (2)安全控制,同步控制,缓存处理结果,缓存初始化开销很大的对象,统计对象的使用以及异常处理等方面。

  • 相关阅读:
    linux 邮件服务器
    Nginx学习之keepalive
    explain 和 desc 详解
    mysql 常用语句
    loop设备及losetup命令
    cryptsetup文件系统加密
    ftp主动与被动模式详解
    大型网站关键技术
    大访问量网站架构设计
    Mysql 的事务隔离级别
  • 原文地址:https://www.cnblogs.com/mengchunchen/p/5747433.html
Copyright © 2020-2023  润新知