zoukankan      html  css  js  c++  java
  • 设计模式——代理模式(静态)

    定义:

    为其他的对象提供一种代理,以控制对这个对象的访问。

    大白话就是,对象不想展示给客户端,或者不方便展示给客户端,那就通过一个类来间接的调用这个类。

    代理类和实体类共同实现一个接口,代理类中保存一个对实体类的引用,提供一个实体类一样的接口,这样,代理类就可以替换实体类了。

    结构:

    subject:代理类和实体类共同的接口,

    Proxy:实现subject接口,并且保存了对实体类的引用,也可以增加一些功能。

    lrealSubject:实现subject接口,Proxy所代表的实体。

    UML图:

    eg:

    生活中,我们代理的模式特别多,例如:我们经常找中介租房,亦或者是找铁哥们帮助自己送个东西给心爱的女生什么的。

    中介租房:

    Host:

    //租房接口
    public interface Host {
        public void rent();
    }

    HostWomen:

    //房东实体
    public class HostWoman implements Host {
    
        @Override
        public void rent() {
            System.out.println("房东租房");
        }
    
    }

    Proxy:

    public class Proxy implements Host {
    
        HostWoman hw = new HostWoman();
    
        @Override
        public void rent() {
            hw.rent();
            System.out.println("中介打扫和收取中介费");
        }

    Client:

    //租客
    public
    class Client { public static void main(String[] args) { Proxy proxy = new Proxy(); proxy.rent(); } }

    以上就实现了一个很小的代理模式。

    以上,仅仅是对静态代理的举例,动态代理等看到再来接着更。

  • 相关阅读:
    使用iconv编程进行字符集转换
    Unity3D学习之路 C#学习笔记(一)
    跨平台的游戏客户端Socket封装
    TCP长连接与短连接的区别
    C++中的long long和__int64类型
    基于cocos2dx的游戏客户端优化
    Android NDK带来什么
    strcpy_s与strcpy的比较
    英文字母和中文汉字在不同字符集编码下的字节数
    socket的read和recv函数的区别
  • 原文地址:https://www.cnblogs.com/tujietg/p/10271589.html
Copyright © 2011-2022 走看看