• 设计模式之四 代理模式


     1 /**
    2 * 文件名:Proxy.java
    3 *
    4 * 版本信息:
    5 * 日期:2011-12-13
    6 * Copyright 陈亚坤 Corporation 2011
    7 * 版权所有
    8 *
    9 */
    10 package byME;
    11
    12 /**
    13 *
    14 * 项目名称:Design Pattern 类名称:Proxy 类描述:代理模式,为其他对象提供一种代理以控制对这个对象的访问。 创建人:chenyakun
    15 * 创建时间:2011-12-13 上午10:28:59 修改人:chenyakun 修改时间:2011-12-13 上午10:28:59 修改备注:
    16 *
    17 * @version
    18 *
    19 */
    20 // Subject类,定义了RealSubject和Proxy的共用接口,这样就在任何使用RealSubject的地方都可以用Proxy代理。
    21 abstract class Subject {
    22
    23 public abstract void Request();
    24 }
    25
    26 // RealSubject类,定义Proxy所代表的真实实体。
    27 class RealSubject extends Subject {
    28
    29 @Override
    30 public void Request() {
    31 System.out.println("真实的请求");
    32 }
    33
    34 }
    35
    36 // Proxy类,保存一个引用,使得代理可访问实体,并且提供一个与Subject相同的接口,这样Proxy就可以完全代替实体。
    37 class Proxy extends Subject {
    38
    39 RealSubject realSubject; //真正的实体
    40
    41 @Override
    42 public void Request() {
    43 if (realSubject == null) {
    44
    45 realSubject = new RealSubject();
    46 }
    47 realSubject.Request();
    48
    49 }
    50
    51 }
    52
    53 class ProxyClient {
    54
    55 public static void mian(String[] args) {
    56
    57 Proxy proxy = new Proxy();
    58 proxy.Request();
    59 }
    60 }
    61 /*
    62 * 代理用在什么地方:
    63 *
    64 * 远程代理,为一个对象在不同的地址空间提供局部代表。
    65 * 虚拟代理,根据需要创建开销很大的对象。通过它来存放实例化很长时间的真是对象。
    66 * 安全代理,控制真实对象的访问权限。
    67 */
  • 相关阅读:
    wc
    1.11考试
    diff
    C++11新利器
    vimdiff
    [学习笔记]多项式
    rev
    [AH2017/HNOI2017]礼物
    tr
    bzoj2555: SubString
  • 原文地址:https://www.cnblogs.com/yakun/p/2286770.html
Copyright © 2020-2023  润新知