zoukankan      html  css  js  c++  java
  • Java模式—静态代理模式

        静态代理模式(Proxy):为其他对象提供一种代理以控制对这个对象的访问,提供“真实对象”的代表,在访问对象时引入一定程度的间接性,这种间接性可以附加多种用途。

        代理模式的主要作用是为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。

        代理模式的思想是为了提供额外的处理或者不同的操作而在实际对象与调用者之间插入一个代理对象。这些额外的操作通常需要与实际对象进行通信。 

    代理模式的对象有:

    (1)抽象角色:也是代理事件的主题,声明真实对象和代理对象的共同接口

    (2)代理角色:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相同的接口以便在任何时刻都能替代真实对象、。同时,代理对象可以再执行真实对象操作时,附加其他的操作,相当于对象真实对象进行封装

    (3)真实角色:代理角色代表的真实对象,是我们最终要应用的对象

    代码例子:

    创建真实角色

    1 //被代理人,真实角色
    2 class Man implements Subject{
    3     public void shopping(){
    4         
    5         System.out.println("买东西");
    6     }
    7 }

    创建代理角色,代理对象角色内部含有对真实对象的引用

    /代理人
    class Proxy implements Subject{
        private Subject subject;//表示被代理人
        public Proxy(Subject subject){
            this.subject=subject;
        }
        //实现接口的方法
        @Override
        public void shopping() {
            System.out.println("代理之前");
            subject.shopping();//被代理人真正的业务
            System.out.println("代理之后");
        }
    }


    创建代理的主题,共同的接口

    1 //抽象角色,真实对象和代理对象的共同接口
    2 interface Subject{
    3     public void shopping();
    4 }

    测试类

    1 public class Test11 {
    2 
    3     public static void main(String[] args) {
    4         Proxy proxy=new Proxy(new Man());
    5         proxy.shopping();
    6     }
    7 
    8 }

    输出结果:

  • 相关阅读:
    WPF解析Fnt字体
    WPF九宫格HLSL版
    BitmapSource ConvertTo Bitmap
    避免重复注册事件引起的内存泄漏
    拆解凹多边形
    轮廓检测
    主动模式FTP与被动模式FTP该如何选择
    深入浅出 消息队列 ActiveMQ
    ftp 文件读取和解析入库
    mysql存储过程语法及实例
  • 原文地址:https://www.cnblogs.com/chenxing818/p/4685498.html
Copyright © 2011-2022 走看看