1、定义通用接口
/**
* 定义通用接口
* @author Administrator
* @date 2018/7/22
*/
public interface IBusiness {
/**
* 接口执行方法
*/
void execute();
}2、定义真实操作实现类
/**
* 真实操作实现类
* @author Administrator
* @date 2018/7/22
*/
public class BusinessImpl implements IBusiness{
@Override
public void execute() {
System.out.println("真正执行操作......");
}
}3、静态代理操作
/**
* 静态代理
* @author Administrator
* @date 2018/7/22
*/
public class ProxyBusiness implements IBusiness{
/**
* 定义需要执行的接口
*/
private IBusiness business;
/**
* 通过set方法传参,真实需要执行的对象
*/
public void setBusiness(IBusiness business) {
this.business = business;
}
/**
* 代理对象执行操作
*/
@Override
public void execute() {
if(business == null){
System.out.println("实际操作对象为null");
return;
}
before();
business.execute();
after();
}
/**
* 执行操作前
*/
public void before(){
System.out.println("执行操作前......");
}
/**
* 执行操作后
*/
public void after(){
System.out.println("执行操作后......");
}
/**
* 测试
*/
public static void main(String[] args) {
ProxyBusiness proxyBusiness = new ProxyBusiness();
BusinessImpl business = new BusinessImpl();
proxyBusiness.setBusiness(business);
proxyBusiness.execute();
}
}总结:静态代理可以通过实现通用接口的不同实现类,来完成相关代理,但是不是相同的通用接口则无效;需要实现很多个接口和代理类,导致代理接口和实现类庞大,不便维护。推荐使用动态代理。
以上就是深入浅出java设计模式--静态代理的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号