代理模式 ---静态代理

静态代理

共同接口

public interface Action {
	 void doSomething();
}

真实角色

public class RealObject implements Action {
	@Override
	public void doSomething() {
		// TODO Auto-generated method stub
		System.out.println("real object dosomething");
	}
}

代理角色

package com.crown.proxy;

public class ProxyObject implements Action {
	
	private Action realObject;
	
	public ProxyObject(Action action) {
		// TODO Auto-generated constructor stub
		this.realObject = action;
	}
	
	@Override
	public void doSomething() {
		// TODO Auto-generated method stub
		System.out.println("proxy begin do some thing");
		realObject.doSomething();
		System.out.println("proxy end do some thing");
	}
}

测试

package com.crown.proxy;

public class TestStaticProxy {
	public static void main(String[] args) {
		RealObject realObject = new RealObject();
		ProxyObject proxyObject = new ProxyObject(realObject);
		proxyObject.doSomething();
	}

}

代理模式的优点: 扩展原功能,不侵入原代码

缺点:要为每个真实角色生成代理。

猜你喜欢

转载自blog.csdn.net/qq_24532581/article/details/87168401