White

设计模式 - 单例模式

单例模式 单例模式是指在应用运行过程中保证某一个类仅有一个实例,并提供一个获取该实例的方法,是一种创建对象的方式。 为什么使用单例模式 节省时间 由于频繁使用的对象,可以省略创建对象所花费的时间,这对于那些重量级的对象而言,是很重要的。 节约资源 不需要频繁创建对象,同时也减轻了 GC 压力 实现单例模式注意的点 单例类只能有一个实例 单例类的构造方法必须是私有的 单...

设计模式 - 代理模式

代理模式 代理模式是一种设计模式,提供了对目标对象的访问方式,通过代理对象调用目标对象的方法,可以在实现目标对象的基础上,增强额外的功能,即扩展了目标对象。 在使用过程中调用者不直接调用目标对象,而是通过代理对象访问目标对象。 首先讲一个费玉清嘿嘿嘿的段子(大家应该都知道)来引入代理模式 费玉清想减肥于是就去了一家减肥中心,前台小姐说:有五百的有一千的还有两千的,功效看价钱,你要哪种...

记一次定时任务重复执行问题的解决过程

问题现象 项目中的定时任务每次都会在同一时间执行两次,但是手动停止任务之后,重新启动又恢复“正常”,对于这个问题,此前的项目负责人给出的解释的这是个有点历史的项目了,定时任务是用 Timer 实现的,这应该是 Timer 的 bug,无法解决。因此一开始接手这个项目的时候,解决这个问题并不在我的任务列表里,但是后面发现因为这个问题是会接连引发其他业务问题的,所以决定还是自己动手查找一下这个问...

MySQL 中的字符串拼接

最近在用数据直接导数据的时候,经常需要用到拼接的功能,将多个字段合并成一个字段输出,因此学习总结了一下 sql 中字符串拼接的相关知识。 CONCAT() 函数 MySQL 中拼接多个字符串的函数是 CONCAT , CONCAT 可以接收多个参数,输出的结果是将所有参数拼接起来的一个字符串,如果有任何一个参数为 NULL ,则返回值为 NULL。使用方式如下: SELECT CON...

设计模式 - 策略模式

策略模式的定义 策略模式(Strategy Pattern):定义一系列算法,将每一个算法封装起来,并让它们可以相互替换。策略模式让算法独立于使用它的客户而变化,也称为政策模式(Policy)。 一个例子 在写策略模式之前,先看一个日常生活中常见的小例子: 我们在电商平台买东西的时候,平台一般会根据不同的用户制定不同的报价策略,比如新用户立减 10 元,VIP 客户免配送费,SVIP ...