zoukankan      html  css  js  c++  java
  • Java 代理

    代理做一个简单的抽象:

    代理模式包含如下角色:

    • Subject:抽象主题角色。可以是接口,也可以是抽象类。
    • RealSubject:真实主题角色。业务逻辑的具体执行者。
    • ProxySubject:代理主题角色。内部含有RealSubject的引用,负责对真实角色的调用,并在真实主题角色处理前后做预处理和善后工作。

    代理模式优点:

    • 职责清晰 真实角色只需关注业务逻辑的实现,非业务逻辑部分,后期通过代理类完成即可。
    • 高扩展性 不管真实角色如何变化,由于接口是固定的,代理类无需做任何改动。

    静态代理代码实例:

    代码转载自:http://www.importnew.com/26116.html
    
    interface ICoder {
    	public void implDemands(String demandName);
    }
    class JavaCoder implements ICoder {
    	private String name;
    	public JavaCoder(String name) {
    		this.name = name;
    	}
    	@Override
    	public void implDemands(String demandName) {
    		System.out.println(name + " implemented demand:" + demandName + " in JAVA!");
    	}
    }
    
    class CoderProxy implements ICoder {
    	private ICoder coder;
    	public CoderProxy(ICoder coder) {
    		this.coder = coder;//将码农coder赋值给this.coder,实现了procy对coder的管理
    	}
    	@Override
    	public void implDemands(String demandName) {
    		coder.implDemands(demandName);
    	}
    }
    public class Customer {
    	public static void main(String args[]) {
    		// 定义一个java码农
    		ICoder coder = new JavaCoder("Zhang");//发生了向上转型,只能实现JavaCoder重写的方法
    		// 定义一个产品经理
    		ICoder proxy = new CoderProxy(coder);//发生了向上转型,只能实现CoderProxy重写的方法
    		// 让产品经理实现一个需求
    		proxy.implDemands("manage");
    	}
    }
  • 相关阅读:
    【转载】jquery取得iframe元素的方法
    【转载】URL重写相关
    【转载】PHP程序员突破成长瓶颈
    【转载】是什么浪费了我的上网时间
    信息化时代下的我们弄潮儿
    如何减小与“大牛”的差距
    servlet应用之cookies&session操作
    Servlet简介及工作原理
    深入学习Tomcat自己动手写服务器(附服务器源码)
    servlet过滤器
  • 原文地址:https://www.cnblogs.com/jeasion/p/10758336.html
Copyright © 2011-2022 走看看