![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 91
weixin_43831204
记录每一点进步
展开
-
动态代理和静态代理的区别
代理模式的目的是在不修改原有类方法设计的基础上,对方法行为进行增强。 为了好理解,举个实际场景,我们业务场景中经常有限流的需求,常规操作是在需要限流的接口代码前加入调用次数判断的代码,但是这样每个需要限流的方法都需要加,工作量大不说,一方面不好维护,不能很清晰的知道每个接口限流值,另一方面,限流代码和业务代码堆叠在一起,也影响代码阅读。解法是做一套统一限流,一般好点的会有专门的接口限流平台,配置对应的接口名,设置限流值,直接就可以限流,实现方式就可以用动态代理。不修改原接口的实现,对接口进行增强。 动.原创 2021-04-25 09:59:04 · 448 阅读 · 0 评论 -
从zuul思考责任链模式
1.定义 **从zuul思考责任链模式,(责任链模式是zuul的核心) ** 为了避免请求发送者与多个请求处理者耦合在一起,将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。 2.场景 2.1 重构前 需求:设计一个请求的网关服务,包括:检查黑名单,校验请求头,请求数据解密,响应数据加密等 if(如果设置了黑名单){ 校验黑名单 } 校验请求头信息 if(数据是否进行加密处理){ 数据解密 } 处理请求数据 if(返回数据是否原创 2020-10-29 19:53:29 · 122 阅读 · 0 评论 -
单例模式——5种实现方式
单例模式——5种实现方式 单例模式能够保证一个类仅有唯一的实例,并提供一个全局访问点。 1、饿汉式(线程安全,调用效率高,但是不能延时加载): public class Singleton { // 使用final修饰是防止被继承 private static final Singleton singleton= new Singleton(); private Singleton(){ } public static Singleton getInstance(){原创 2020-09-15 16:41:34 · 73 阅读 · 0 评论 -
单例工厂
public class SingletonFactory { @SuppressWarnings("rawtypes") private static Map<Class,Object> instaces = new ConcurrentHashMap<Class, Object>(); @SuppressWarnings("rawtypes") private sta...原创 2019-11-22 10:03:42 · 359 阅读 · 0 评论 -
模板方法设计模式(Template Method)
最易懂设计模式解析 适配器设计模式 Mybatis代理设计模式 Mybatis多级代理 1. 认识模板方法模式 1.1 模式定义 定义一个操作算法中的框架,而将这些步骤延迟加载到子类中。 它的本质就是固定算法框架。 1.2 解决何种问题 让父类控制子类方法的调用顺序 模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 1.3 模式好处 开发人员在开...原创 2019-11-02 12:28:03 · 94 阅读 · 0 评论