标签:world 源码 根据 传递 code sign 地址 代理类 static
??代理模式(Proxy Pattern),指调用者通过调用代理对象来访问真实对象,在真实对象访问之前或者之后加入对应的逻辑,或者根据其他规则控制是否使用真实对象。代理对象需要和真实对象建立代理关系。
/**
* 抽象对象
*
* @author zt1994 2019/3/2 16:25
*/
public interface SayHello {
void sayHelloWorld();
}
/**
* 真实对象
*
* @author zt1994 2019/3/2 16:27
*/
public class SayHelloImpl implements SayHello {
@Override
public void sayHelloWorld() {
System.out.println("Hello World!");
}
}
/**
* 代理对象
*
* @author zt1994 2019/3/2 16:28
*/
public class SayHelloProxy implements SayHello {
private SayHello sayHello;
public SayHelloProxy(SayHello sayHello) {
this.sayHello = sayHello;
}
@Override
public void sayHelloWorld() {
System.out.println("调用sayHello之前的处理");
sayHello.sayHelloWorld();
System.out.println("调用sayHello之后的处理");
}
}
/**
* 测试静态代理
*
* @author zt1994 2019/3/2 16:30
*/
public class staticProxyTest {
/**
* 测试静态代理
*/
@Test
public void testStaticProxy() {
SayHelloImpl sayHello = new SayHelloImpl();
sayHello.sayHelloWorld();
SayHelloProxy sayHelloProxy = new SayHelloProxy(sayHello);
sayHelloProxy.sayHelloWorld();
}
}
测试结果:
Hello World!
调用sayHello之前的处理
Hello World!
调用sayHello之后的处理
源码地址:https://github.com/zt19994/designPattern
标签:world 源码 根据 传递 code sign 地址 代理类 static
原文地址:https://www.cnblogs.com/zt19994/p/10461812.html