动态代理设计模式

public interface SleepService { void sleep();}@Slf4jpublic class SleepServiceImpl implements SleepService { @Override public void sleep() { log.info(“睡觉了”); }}import lombok.extern.slf4j.Slf4j;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;@Slf4jpublic class SleepServiceProxy implements InvocationHandler { private SleepServiceImpl sleepServiceImpl; public SleepServiceProxy() { } public SleepServiceProxy(SleepServiceImpl sleepServiceImpl) { this.sleepServiceImpl = sleepServiceImpl; } private SleepService sleepService = new SleepServiceImpl(); @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { log.info(“睡觉前关灯”); Object o = method.invoke(sleepServiceImpl,args); return o; }}import java.lang.reflect.Proxy;public class MainTest { public static void main(String[] args) { SleepService sleepService = (SleepService) Proxy.newProxyInstance(SleepServiceImpl.class.getClassLoader(), new Class[]{SleepService.class}, new SleepServiceProxy(new SleepServiceImpl())); sleepService.sleep(); }}

郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
上一篇 2022年6月14日 09:12
下一篇 2022年6月14日 09:12

相关推荐

联系我们

联系邮箱:admin#wlmqw.com
工作时间:周一至周五,10:30-18:30,节假日休息