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设计模式--静态代理的详细内容。