Honson Blog

一生想做浪漫极客

反射对单例模式的破坏

设计模式之单例模式

反射对单例模式的破坏 首先我们依旧是使用饿汉式作为测试。我们把之前写的饿汉式的代码贴上来。 public class HungrySingleton { private final static HungrySingleton hungrySingleton; static{ hungrySingleton = new HungrySingleton()...

原型模式

设计模式之原型模式

原型模式 定义 指原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 特点 不需要知道创建的细节,不调用构造函数 类型 创建型 适用场景 类初始化消耗较多资源 new产生的一个对象需要非常繁琐的过程(数据准备、访问权限等) 构造函数比较复杂 循环体中生产大量对象时 优点 原型模式性能比直接new 一个对象性能高 简化创建过程 缺点 必须...

枚举实现单例模式

设计模式之单例模式

枚举实现单例模式 前面我们说到序列化和反序列化以及反射对单例都是有破坏的,下面我们介绍一种更加优雅的实现,也是effective java中推荐的实现方式,枚举实现单例模式。话不多说我们直接看代码吧。 public enum EnumInstance { INSTANCE{ protected void printTest(){ Syste...

mybatis Intercepts插件的使用

mybatis Intercepts

一般数据库的表结构都会有update_time,修改时间,因为这个字段基本与业务没有太大关联,因此开发过程中经常会忘记设置这两个字段的值,本插件就是来解决这个问题。同样的想生成id,create_time等操作都是可以以同样的方式解决。想折腾的同学还可以通过这中方式自己写个分页插件。闲话少说上代码。 1. 先写一个自定义注解标注是update_time package com.z...

享元模式

设计模式之享元模式

享元模式 定义 提供了减少对象数量二改善应用所需的对象结构的方法 运用共享技术有效的支持大量粗粒度的对象。 用通俗的大白话来说就是减少对象的数量,提高对象的利用率,减少内存的使用,提高系统性能。 类型 创建型 适用场景 常常应用于系统底层的开发,一遍解决系统的性能问题。 系统中有大量的相似对象、需要使用缓冲池的场景。 优点 减少对象的创建,...