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

    在实际开发的时候,我们同样的一个对象,对于不同的客户,可能能够调用的方法是不一样的,就是权限的控制,这个时候,对象的方法都应该是public,那么就要给对象加上一层,通过客户的类型,决定是否可以访问,也就是说,客户不直接访问对象,而是访问给对象加上的这一层,就是代理层。

    public interface T1{
        public void method();
    };
    public class Item implements T1{
        public void method();
    }
    public class ItemProxy implements T1{
        Item item;
        Client client;
        public ItemProxy(Client c){
            this.Client=c;
            this.item=new item();
        }
        public void method(){
            if (client,allow()){    
                item.method1();
            }else{
                return;
            }
        }
    }
    public class Client{
        T1 t;
        public Client()    
        {
            t=new ItemProxy(this);
        }
        public void method1()
        {    
            t.method();    
        }    
    }

    这样就可以在代理类中,控制对象的访问了,当然代理模式实现方式还有很多种,(远程代理管理客户和远程对象的交互,虚拟代理控制访问实例化开销大的对象,保护代理基于调用者控制对对象方法的访问),上面只是其中的一种方式,代理模式的定义如下:

    代理模式:为另一个对象提供一个替身或占位符以访问这个对象。
  • 相关阅读:
    更改桌面位置
    三国杀高级技巧!!
    excel中删除空白行方法
    欢迎来稿
    coreseek配置文件分析
    html中a连接触发表单提交
    html点击按钮动态添加input文本框
    页面表单预览数据传递注意事项
    mysql 主从复制(masterslave)
    mysql explain key_len小结
  • 原文地址:https://www.cnblogs.com/xtestw/p/3961546.html
Copyright © 2011-2022 走看看