随笔分类 - 程序设计
摘要:代码地址:https://github.com/showkawa/springBoot_2017/tree/master/spb-demo/spb-script 插件模式不属于经典设计模式的范畴,但是在项目开放中也会碰到,特别是做微前端(Micro-Frontend)开发的小伙伴会对插件化插件模式体
阅读全文
摘要:什么是责任链模式 客户端发出一个请求,链上的对象都有机会来处理这一请求,而客户端不需要知道谁是具体的处理对象。这样就实现了请求者和接受者之间的解耦,并且在客户端可以实现动态的组合职责链。使编程更有灵活性。 定义:使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成
阅读全文
摘要:最近,项目收到中间件团队的报告,我们的应用连接他们的中间件(项目内部的MQ)连接数太大了,要求我们做一些调整。然后看了下我们的代码,发现我们接收和发送MQ消息的方式是每次新建一个连接然后关闭连接(询问了之前的同事,目前因为某些原因现在只能采取这种方式发送消息),但是每连接一次都会new一个对象出来,
阅读全文
摘要:单例 :单例模式确保一个类只有一个实例,并提供全局访问点,实现单例模式的方法是私有化构造函数,通过getInstance()方法实例化对象,并返回这个实例,并保证在JVM中只有一个实例 单例模式优缺点 优点 1、单例类只有一个实例,不会频繁创建对象 2、共享资源,全局使用,访问速度比较快(只有一个实
阅读全文
摘要:观察者模式:在对象之间定义了一对多的依赖,当一个对象改变状态,依赖它的对象会收到通知并自动更新。其实就是发布订阅模式,发布者发布信息,订阅者获取信息,订阅了就能收到信息,没订阅就收不到信息。 观察者模式应用场景 Spring的ApplicationEvent、Zk事件通知节点、消息订阅通知、安卓开发
阅读全文
摘要:代理模式: 为其他对象提供一种代理以控制对这个对象的访问。 1.为什么使用代理模式 中介隔离:在某些情况下,一个客户类不想或者不能直接引用一个委托对象,而代理类对象可以在客户类和委托对象之间起到中介的作用,其特征是代理类和委托类实现相同的接口。 开闭原则,增加功能代理类除了是客户类和委托类的中介之外
阅读全文
摘要:装饰者模式 : 在不改变原有对象的基础上附加功能,动态的给一个对象添加或者撤销功能 (通过调用super的方法控制执行的顺序),相比生成子类更灵活。 1.装饰者模式应用场景 Java IO流,Mybatis的缓存框架,Spring中的Session等等。 2.装饰者模式优缺点 优点:可以不改变原有对
阅读全文
摘要:最近测试team在测试过程中反馈部分接口需要做一定的限流措施,刚好我也回顾了下限流相关的算法。常见限流相关的算法有四种:计数器算法, 滑动窗口算法, 漏桶算法, 令牌桶算法 1.计数器算法(固定窗口) 计数器算法是使用计数器在周期内累加访问次数,当达到设定的阈值时就会触发限流策略。下一个周期开始时,
阅读全文
摘要:统一建模语言(Unified Modeling Language,UML)可以帮助我们表示软件的结构:不同的模块、类和对象如何相互交互,以及它们之间的关系是什么。类图是面向对象设计和开发阶段中使用最多的图类型。类图是一种结构图,用于说明类的结构及类之间的关系。 1.类图 类图一般分为几个部分:类名、
阅读全文
摘要:RxJS 是一个库,它通过使用Observable序列来编写异步和基于事件的程序。其中Observable的设计主要运用到的设计模式有观察者模式(Observer pattern )和迭代器模式(Iterator pattern)。 1.观察者模式(Observer pattern) 1.1 什么是
阅读全文
摘要:12 factor 目录 未来的应用,不管什么语言,最好是遵守这12个因素 I. 基准代码 一份基准代码,多份部署 II. 依赖 显式声明依赖关系 III. 配置 在环境中存储配置 IV. 后端服务 把后端服务当作附加资源 V. 构建,发布,运行 严格分离构建和运行 VI. 进程 以一个或多个无状态
阅读全文