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

    当客户端代码直接访问对象存在某些问题时,我们会考虑在对象和客户端代码之间加一个访问层,也就是代理模式。

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

    来看UML图:

    代理类与真实类共同实现了相同的接口,这样做可以控制特定方法的输入输出一致。

    代理类包含了真实类作为其成员变量。

    来看代码:

    public interface ISubject {
    	public void sayHello();
    }
    

    ISubject接口。

    public class RealSubject implements ISubject {
    
    	@Override
    	public void sayHello() {
    		// TODO Auto-generated method stub
    		System.out.println("Hello!");
    	}
    
    }
    

    真实类实现了sayHello方法。

    public class Proxy implements ISubject {
    	
    	private RealSubject real = null;
     
    	@Override
    	public void sayHello() {
    		// TODO Auto-generated method stub
    		if(real == null){
    			real = new RealSubject();
    		}
    		real.sayHello();
    	}
    
    }
    

    代理类内部包含真实类对象,显式调用真实类对象的方法。

    public class ProxyDemo {
    	public static void main(String[] args) {
    		Proxy proxy = new Proxy();
    		proxy.sayHello();
    	}
    }
    

      

  • 相关阅读:
    svn命令
    dos 批处理删除svn目录
    Libevent 的多线程操作
    Linux Daemon 类程序
    模板函数 使用的默认void 模板报错
    配置BUG-Linux系统下ssh登陆很慢的解决办法
    Centos apache + mysql + usvn 配置svn 服务器
    Centos 7U盘安装
    mysql 常用基础
    shell 的 md5 命令
  • 原文地址:https://www.cnblogs.com/zcy-backend/p/6670687.html
Copyright © 2011-2022 走看看