网站建设介绍ppt,wordpress 导出导入文章,怎么申请网址怎么用,网站开发培训排名本文主要是记录java的设计模式在实际工作中的应用案例#xff0c;或者是对设计模式的个人理解及备忘
一、单例模式Singleton
工作场景#xff08;静态类#xff09;#xff1a;
在外部系统对接中#xff0c;需要调用外部系统A的接口#xff0c;但是接口是有身份校验的…本文主要是记录java的设计模式在实际工作中的应用案例或者是对设计模式的个人理解及备忘
一、单例模式Singleton
工作场景静态类
在外部系统对接中需要调用外部系统A的接口但是接口是有身份校验的需要根据指定账户获取token信息然后把token放在接口的header中以鉴权和传递身份信息。 这个接口使用十分频繁如果每次调用接口前都需要获取token如果不增加个缓存并且约定过期时间的话比较耗费网络性能。最后方案使用静态类解决这个问题token缓存在单例类TokenGenerator中过期时间TTL和外部系统约定好其他类如果调用TokenGenerator.getToken()方法先判断缓存中的token有没有过期如果有效返回缓存中的token如果过期了再去外部系统通过接口进行请求。代码如下public class TokenGenerator(){private String token;private Date TTL;private String refreshToken(){this.token HttpClient.get(http://, params);// 更新TTL至过期时间return this.token;}public String getToken(){if(currentTime TTL){// 如果token过期了更新token并返回return refreshToken();}else{// 如果没过期。直接返回缓存的tokenreturn this.token;}}
}静态类和单例模式
使用完静态类后发现和单例模式的思想很像那他们有什么区别引用下这篇文章的总结 单例模式是面向对象的设计。本质上还是创建对象调用方法。单例存在的根本就是为了得到对象。静态类是单纯使用方法体对象没有存在的价值。所以直接使用类名调用不创建对象。静态类存在是为了快捷方便的使用里面的方法。二者设计目标不同静态类构造函数没有存在的价值单例模式需要获取对象所以必须有构造器但是私有化。而且可以有非静态的成员。单例模式推荐使用静态的成员 什么时候该使用单例模式什么时候使用静态类参考这篇文章
单例模式应用场景