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

    设计模式的意义在于:面向业务内容、业务数据结构和系统架构,高内聚低耦合、优雅的将平面逻辑立体化。

     1 package designPattern;
     2 
     3 /**
     4  * 代理模式
     5  * @author Administrator
     6  */
     7 public class C21_ProxyTest {
     8 
     9     /**
    10      *  为其他对象提供一种代理以控制对这个对象的访问
    11      *  适用于:
    12      *  1.远程代理(RemoteProxy)为一个对象在不同的地址空间提供局部代表。
    13      *     2.虚代理(VirtualProxy)根据需要创建开销很大的对象。
    14      *     3.保护代理(ProtectionProxy)控制对原始对象的访问。
    15      *     4.智能指引(SmartReference)取代了简单的指针,它在访问对象时执行一些附加操作
    16      */
    17     public static void main(String[] args) {
    18         ProxyObj po=new ProxyObj();
    19         po.action();
    20     }
    21 }
    22 /**
    23  * 1.Proxy 保存一个引用使得代理可以访问实体。若RealSubject和Subject的接口相同,Proxy会引用Subject。
    24  *提供一个与Subject的接口相同的接口,这样代理就可以用来替代实体。控制对实体的存取,并可能负责创建和删除它。
    25  *其他功能依赖于代理的类型:
    26  */
    27 class ProxyObj implements Obj
    28 {
    29     Obj o;
    30     public ProxyObj()
    31     {
    32         System.out.println("这是代理类!");
    33         o=new ObjImpl();
    34     }
    35     public void action()
    36     {
    37         System.out.println("开始代理...");
    38         o.action();
    39         System.out.println("代理结束...");
    40     }
    41 }
    42 
    43 //2.Subject 定义RealSubject和Proxy的共用接口,这样就在任何使用RealSubject的地方都可以使用Proxy。
    44 interface Obj
    45 {
    46     void action();
    47 }
    48 //3.RealSubject 定义Proxy所代表的实体。
    49 class ObjImpl implements Obj
    50 {
    51     public void action()
    52     {
    53         System.out.println("这是被代理的类....");
    54     }
    55 }

    环境:JDK1.6,MAVEN,tomcat,eclipse

    源码地址:http://files.cnblogs.com/files/xiluhua/designPattern.rar

    欢迎亲们评论指教。

  • 相关阅读:
    C# 排序技术研究与对比
    基于.net的通用内存缓存模型组件
    Scala学习笔记:重要语法特性
    一个初学者的指南,使用D3做数据绑定
    CLR垃圾回收的设计
    CLR线程概览(下)
    CLR线程概览(一)
    使用sos查看.NET对象内存布局
    .NET对象的内存布局
    MYC编译器源码之代码生成
  • 原文地址:https://www.cnblogs.com/xiluhua/p/4413820.html
Copyright © 2011-2022 走看看