静态代理案例
通过静态代理来帮助发短信(短信发送类和代理类实现相同的接口)
SmsService.java(接口)
package proxy;
public interface SmsService {
String send(String message);
}
SmsServiceImpl.java(实现类)
package proxy;
public class SmsServiceImpl implements SmsService{
@Override
public String send(String message) {
System.out.println("send message:" + message);
return message;
}
}
SmsProxy.java(代理类)
package proxy;
public class SmsProxy implements SmsService{
private final SmsService smsService;
public SmsProxy(SmsService smsService){
this.smsService = smsService;
}
@Override
public String send(String message) {
System.out.println("before method send()");
smsService.send(message);
System.out.println("after method send()");
return null;
}
}
Main.java(测试类)
package proxy;
public class Main {
public static void main(String[] args){
SmsService smsService = new SmsServiceImpl();
SmsProxy smsProxy = new SmsProxy(smsService);
smsProxy.send("java");
}
}
运行结果