Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!
当前位置: 主页 > Java文档 > Java基础相关 >

浅析Java设计模式_代理 PDF 下载


分享到:
时间:2020-07-28 15:28来源:http://www.java1234.com 作者:小锋  侵权举报
浅析Java设计模式_代理 PDF 下载
失效链接处理
浅析Java设计模式_代理  PDF 下载

本站整理下载:
提取码:6cpp 
 
 
相关截图:
 
主要内容:

1. 概念
百度百科对它的定义是:对其他对象提供一种代理以控制对这个对象的访问。
代理模式更多的是一种安全层面的考虑,保护被访问对象的安全,在访问者和被访问者之间起一种中介
作用。在我们具体应用中都会遇到需要记录掌控方法的执行前后的动作。
从生成方式的不通又在代理中分为静态代理、动态代理以及Cglib代理。
2. 静态代理
代理类在程序运行前就已经定义好,其与目标类(被代理类)的关系在程序运行前就已经确立,属于事
前约定的范畴。这一点非常类似于企业与企业法律顾问间的关系,他们之间的代理关系,并不是在“官司
“发生后才建立的,而是之前就确立好的一种关系。在这一点上动态代理可以理解为官司已经开始,才临
时聘请熟谙法律的律师。
package xyz.wongs.weathertop.design.proxy; /*** @ClassName Loginable * @Description 定义接口 * @author WCNGS@QQ.COM * @Github <a>https://github.com/rothschil</a> * @date 2019/12/27 15:31 * @Version 1.0.0 */public interface Loginable { void login(); }package xyz.wongs.weathertop.design.proxy.stat; import lombok.extern.slf4j.Slf4j; import xyz.wongs.weathertop.design.proxy.Loginable; import java.util.Random; /*** @ClassName LoginService * @Description 登陆实现类 * @author WCNGS@QQ.COM * @Github <a>https://github.com/rothschil</a> * @date 2019/12/27 15:32 * @Version 1.0.0 */@Slf4j public class LoginService implements Loginable { @Override public void login(){ try {Thread.sleep(new Random().nextInt(5000)); } catch (InterruptedException e) { e.printStackTrace(); }log.error("登陆成功"); } }package xyz.wongs.weathertop.design.proxy.stat; import lombok.extern.slf4j.Slf4j; import xyz.wongs.weathertop.design.proxy.Loginable; /*** @ClassName LoginServiceProxy
* @Description 实际代理类 * @author WCNGS@QQ.COM * @Github <a>https://github.com/rothschil</a> * @date 2019/12/27 15:32 * @Version 1.0.0 */@Slf4j public class LoginServiceProxy implements Loginable { private Loginable loginable; public LoginServiceProxy() { }public LoginServiceProxy(Loginable loginable) { this.loginable = loginable; }@Override public void login() { long start = System.currentTimeMillis(); log.error("start proxy : " + start); loginable.login(); long end = System.currentTimeMillis(); log.error("end proxy : " + end); log.error("spend all time : " + (end - start) + " ms."); } }

 

------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐