Java23种设计模式(一):单例模式

JAVA设计模式总结之23种设计模式 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是它能被广泛应用的原因。 阅读详情

Java 中的 23 种设计模式详解


设计模式是软件开发中的最佳实践,帮助开发者在面对复杂设计问题时提供有效的解决方案。GoF(Gang of Four)在其经典著作《设计模式:可复用面向对象软件的基础》中定义了 23 种设计模式。。本文将详细介绍23种经典设计模式,包括创建型模式、结构型模式和行为型模式,提供每种模式的定义、原理、优点、Java示例代码以及详细注释。

目的范围名称描述
创建型(Creational)对象单例模式(Singleton)保证一个类仅有一个实例:并提供一个访问它的全局访问点。
原型模式(Prototype)用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象。
建造者模式(Builder)将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
抽象工厂模式(Abstract Factory)提供一个创建一系列相关或互相依赖对象的接口,而无需指定它们具体的类。
类工厂方法模式(Factory Method)定义一个用于创建对象的接口,让子类决定将哪一个类实例化。Factory Method使个类的实例化延迟到其子类。
结构型(Structural)对象适配器模式(Adapter)将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
桥接模式(Bridge)将抽象部分与它的实现部分分离,使它们都可以独立地变化。
组合模式(Composite)将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得客户对单个对象和复合对象的使用具有一致性。
装饰模式(Decorator)动态地给一个对象添加一些额外的职责。就扩展功能而言,Decorator模式比生成子类方式更为灵活。
外观模式(Facade)运用共享技术有效地支持大量细粒度的对象。
享元模式(Flyweight)为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
代理模式(Proxy)为其他对象提供一个代理以控制对这个对象的访问。
类适配器模式(Adapter)将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
行为型(Behavioral)对象责任链模式(Chain of Responsibility)为解除请求的发送者和接收者之间耦合,而使多个对象都有机会处理这个请求。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它。
命令模式(Command)将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可取消的操作。
迭代器模式(lterator)提供一种方法顺序访问一个聚合对象中各个元素,而又不需要暴露该对象的内部表示。
中介者模式(Mediator)用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
备志录模式(Memento)在不破坏封装性的前提下,捕获一个对象的内部状态。
观察者模式(Observer)定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。
状态模式(State)允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它所属的类。
策略模式(Strategy)定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法的变化可独立于使用它的客户。
访问者模式(Visitor)表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。
类解释器模式(Interpreter)给定一个语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。
模板方法模式(Template Method)定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Iethod使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步。

创建型模式(Creational Patterns)


创建型模式关注于对象的创建,提供了更灵活的对象创建方式。

创建型模式分为单例模式(Singleton Pattern)、原型模式(Prototype Pattern)、建造者模式(Builder Pattern)、工厂方法模式(Factory Method Pattern)、抽象工厂模式(Abstract Factory Pattern)

单例模式(Singleton Pattern)

问题:

在某些情况下,需要确保一个类只有一个实例,并且需要一个全局访问点来访问这个实例。例如,在一个应用程序中,一个配置管理器类需要保持一致的配置数据,以避免不同部分之间的配置冲突。

解决方案:

单例模式通过确保一个类只能创建一个实例,并提供一个静态方法或静态属性来访问这个实例。通常,单例类会将自己的构造函数声明为私有,以防止外部代码直接new创建实例。通过一个静态方法,单例类可以控制在运行时只能获得同一个实例。在需要协调访问共享资源(例如数据库连接)的场景中,单例能有效控制并发访问,防止产生冲突。

效果:

单例模式的应用可以确保在整个应用程序中只有一个实例存在,从而节省了资源和内存。它也可以提供一个全局的访问点,使得代码中的各个部分都可以方便地获取这个实例。然而,过度使用单例模式可能导致全局状态的难以控制,以及模块之间的紧耦合。在多线程环境下需要小心处理,以确保线程安全。

总之,单例模式是一种常用的设计模式,适用于需要全局唯一实例的场景。它的核心思想在于通过限制类的实例化来控制对象的数量,从而保证全局唯一性。

常见的单例模式实现方式有:饿汉式(静态常量)、饿汉式(静态代码块)、懒汉式(线程不安全)、懒汉式(线程安全——同步方法)、双重检查锁定(Double-Check Locking)、静态内部类、枚举实现等。

饿汉式(静态常量)
  • 原理:在类加载时就创建好单例实例,这样保证了线程安全,因为 Java 类的加载是线程安全的。
  • 优点:
    • ​​​​实现简单;
    • 线程安全,无需额外的同步控制。
  • 缺点:
    • 没有延迟加载效果(即使应用中可能永远不会使用这个实例,也会在类加载时创建)。

Java示例

public class Singleton {
    // 类加载时创建实例,保证线程安全
    private static final Singleton INSTANCE = new Singleton();

    // 私有构造方法,防止外部实例化
    private Singleton() {
        // 防止通过反射调用私有构造方法创建多个实例
        if (INSTANCE != null) {
            throw new IllegalStateException("实例已经存在!");
        }
    }

    // 全局访问点
    public static Singleton getInstance() {
        return INSTANCE;
    }
}
饿汉式(静态代码块)
  • 原理:利用静态代码块在类加载时创建实例,与静态常量方式类似。
  • 优点:
    • ​​​​与静态常量方式相同,线程安全、实现简单。
  • 缺点:
    • 同样没有实现延迟加载,类加载时就完成了实例化。

Java示例

public class Singleton {
    private static final Singleton INSTANCE;

    // 静态代码块,在类加载时执行
    static {
        INSTANCE = new Singleton();
    }

    private Singleton() {
        if (INSTANCE != null) {
            throw new IllegalStateException("实例已经存在!");
        }
    }

    public static Singleton getInstance() {
        return INSTANCE;
    }
}
 懒汉式(线程不安全)
  • 原理:在第一次调用 getInstance() 时创建实例,实现延迟加载。但在多线程环境下存在竞争条件,可能会创建多个实例。
  • 优点:
    • 实现了延迟加载
  • 缺点:
    • 在多线程场景下,两个线程可能同时判断 instance == null,从而各自创建一个实例,违背了单例原则。

Java示例

public class Singleton {
    // 延迟加载实例
    private static Singleton instance;

    private Singleton() {}

    public static Singleton getInstance() {
        if (instance == null) {
            // 多线程环境下可能出现问题
            instance = new Singleton();
        }
        return instance;
    }
}

懒汉式(线程安全——同步方法)【推荐使用】
  • 原理:通过在 getInstance() 方法上加 synchronized 关键字,保证同一时刻只有一个线程进入该方法,从而确保只创建一个实例。
  • 优点:
    • 实现简单,能够保证线程安全。
  • 缺点:
    • 整个方法加锁,每次调用都需要同步,降低了性能(尽管实例只创建一次,但每次访问都涉及同步开销)。

Java示例

public class Singleton {
    private static Singleton instance;

    private Singleton() {}

    // 方法同步,保证线程安全
    public static synchronized Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}
双重检查锁定(Double-Check Locking)【推荐使用】
  • 原理:在进入同步块前先进行一次非同步检查,只有当实例为 null 时才进入同步块;在同步块内部再进行一次检查,确保只创建一次实例。
  • 注意:必须将实例声明为 volatile,防止由于指令重排序造成线程安全问题。
  • 优点:
    • 线程安全、实现延迟加载;
    • 同步代码块只在第一次初始化时执行,提高了效率。
  • 缺点:
    • 实现相对复杂,需要正确使用 volatile 和双重检查机制。
  • 深入分析:
    • 为什么需要双重检查?

        第一次检查是为了避免每次都进入同步块,提高效率;第二次检查是为了防止多个线程在同步块内同时创建实例。

  • volatile 的作用

        在 Java 中,实例化对象(instance = new Singleton();)实际上可以分为以下几个步骤:
分配内存空间;

  1. 初始化对象;
  2. 将内存地址赋值给 instance 变量。
  3. 由于指令重排序,步骤 2 和 3 可能会调换,如果没有 volatile 修饰,另一个线程可能会看到一个未完全初始化的对象。

Java示例

public class Singleton {
    // volatile 关键字确保多线程环境下变量的可见性和禁止指令重排序
    private static volatile Singleton instance;

    private Singleton() {}

    public static Singleton getInstance() {
        if (instance == null) { // 第一次检查(无锁)
            synchronized (Singleton.class) {
                if (instance == null) { // 第二次检查(有锁)
                    instance = new Singleton();
                }
            }
        }
        return instance;
    }
}
静态内部类【推荐使用】
  • 原理:利用 JVM 类加载机制实现延迟加载和线程安全。静态内部类只有在外部类调用 getInstance() 时才会被加载,从而实现延迟加载效果,同时 JVM 保证类加载时的线程安全性。
  • 优点:
    • 实现延迟加载;
    • JVM 在加载类时保证线程安全,无需显式同步;
    • 代码简洁易懂。
  • 缺点:
    • 静态内部类的机制对初学者可能不够直观,需要理解类加载的原理。

Java示例

public class Singleton {
    private Singleton() {}

    // 静态内部类,负责持有 Singleton 实例
    private static class SingletonHolder {
        private static final Singleton INSTANCE = new Singleton();
    }

    // 当调用 getInstance() 时,SingletonHolder 会被加载并初始化 INSTANCE
    public static Singleton getInstance() {
        return SingletonHolder.INSTANCE;
    }
}
枚举实现【推荐使用】
  • 原理:
    • 使用枚举类型实现单例,利用 Java 枚举的特性保证单例的唯一性和线程安全性。
    • 枚举实现不仅天然防止了反射攻击,还能防止反序列化重新创建实例,因为 Java 保证了每个枚举常量在 JVM 中都是唯一的。
  • 优点:
    • 实现简单、代码精炼;
    • 天然线程安全;
    • 防止反射和反序列化破坏单例(反射很难创建枚举实例)。
  • 缺点:
    • 如果需要继承其他类或实现某种接口,枚举的局限性可能会带来一些限制;
    • 在某些场景下,枚举的语法风格可能不符合团队的编码规范。
    • 不支持延迟加载,因为枚举常量在类加载时就已经被实例化了,需要延迟加载请使用双重检查锁定或静态内部类

Java示例

public enum Singleton {
    INSTANCE; // 枚举中的唯一实例

    // 可以添加其他方法
    public void someMethod() {
        // 实现具体逻辑
    }
}
public class TestSingleton {
    public static void main(String[] args) {
        // 获取枚举单例实例
        Singleton singleton = Singleton.INSTANCE;
        singleton.someMethod();
    }
}

单例模式实现方式对比

实现方式延迟加载线程安全实现复杂度性能影响反射/反序列化防护
饿汉式(静态常量/代码块)否是低较好(无同步开销)需额外判断防护
懒汉式(同步方法)是是低每次调用均有同步开销需额外判断防护
双重检查锁定是是中初次同步,后续无同步需额外判断防护
静态内部类是是中JVM机制,无额外同步需额外判断防护
枚举是是最低最优(JVM保证)天然防护

推荐使用场景

  • 双重检查锁定:适用于需要延迟加载且对性能要求较高的多线程环境,但需要确保理解 volatile 的作用。
  • 静态内部类:实现简洁、延迟加载且线程安全,适合大部分业务场景。
  • 枚举实现:是实现单例的最简洁和安全的方式,推荐在 JDK1.5 及以上版本中使用,特别是在需要防止反射和反序列化攻击的场合
23种设计模式【Java】全案例解析 具体解析 创建型 结构型 7个原则 单一职责原则【SINGLE RESPONSIBILITY PRINCIPLE】: 一个类负责一项职责。 里氏替换原则【LISKOV SUBSTITUTION PRINCIPLE】: 继承与派生的规则。 依赖倒置原则【DEPENDENCE INVERSION PRINCIPLE】: 高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。即针对接口编程,不要针对实现编程。 接口隔离原则【INTERFACE SEGREGATION PRINC 阅读详情

相关推荐

Java的23设计模式学习(课时一)单例模式

◆设计模式的本质是面向对象设计原则的实际运用, 是对类的封装性、继承性和多态性以及类的关联关系和组合关系的充分理解。 ◆正确使用设计模式具有以下优点: ◆可以提高程序员的思维能力、编程能力和设计能力。 ◆使程序设计更加标准化、 代码编制更加工程化,使软件开发效率大大提高,从而缩短软件的开发周期。 ◆使设计的代码可重用性高、可读性强、可靠性高、灵活性好、可维护性强。

qq_56248592的博客 513

Java23中设计模式一:单例模式

概述单例模式大概是最基础的设计模式了,大家大概都知道单例模式类中的几个要点: 1. 构造方法私有 2. 具有一个指向自己实例的私有静态引用 3. 返回静态引用的静态公共方法单例模式说明定义:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 类图: 优点: 在内存中只有一个对象,节省内存空间。 避免频繁的创建销毁对象,可以提高性能。 避免对共享资源的多重占用。 可以全局访问。

夫子与歌的博客 531

java23种设计模式!附源码

本文将详细介绍Java中常见的23种设计模式、应用场景、优缺点、代码示例。包括单例模式、工厂模式、建造者模式、原型模式、适配器模式、桥接模式、组合模式、装饰器模式、外观模式、享元模式、代理模式、职责链模式、状态模式、策略模式、模板方法模式、观察者模式、迭代器模式、访问者模式、中介者模式、备忘录模式、解释器模式和享元工厂模式。通过了解这些设计模式,可以帮助我们更好地理解和应用面向对象编程的思想,提高代码的可重用性、灵活性和可维护性。

weixin_70044963的博客 1万+

Java设计模式:23种设计模式(一) 单例模式

目录 什么是单例 单例的利与弊 单例模式实现 懒汉式单例 双重检查锁定——DCL(Double Check Lock) 饿汉式单例 懒汉式与饿汉式的不同 其他单例模式实现 静态内部类单例 枚举单例 登记式单例 破坏单例的方式及解决方法 反序列化 反射 克隆 什么是单例 单例模式(Singleton Pattern)被认为是最简单、最易理解的设计模式。但事实上,要用...

戏流年的博客 400

23种设计模式总结和java实现

本文概括总结了23种设计模式,并提供了每种设计模式的java实现。

hrh的博客 1559

快充协议全兼容!HUSB390对比测试:iPhone/小米/华为哪个充电最快?

本文深入评测了HUSB390快充协议芯片的全兼容性能,展示了其在iPhone、小米和华为设备上的极速充电表现。通过智能功率分配算法和多协议并行处理引擎,HUSB390实现了高效的动态调压和温度控制,显著提升多设备充电效率。特别适合需要同时为不同品牌设备快充的用户。

dd012的博客 1万+

Java23种设计模式:单例模式(一)

Java设计模式简介: Java设计模式是一个设计程序的思想,便于开发,优化、管理、关联等,是程序更加健壮。 Java设计模式分三种:创建型模式,结构型模式,行为型模式。 创建型模式:单例模式,工厂模式,抽象工厂模式,建造者模式,原型模式 结构模式:   适配器模式,桥接模式,装饰模式,组合模式,外观模式,   享元模式,代理模式 行为模式:    模板方法模式,命令模式,迭代器模式

清风明月独相伴 378

在abaqus中利用point-based 来快捷定义螺栓连接

abaqus中可以通过point-based方式定义连接点的位置,并对连接方式进行定义,可以进行螺栓连接的模拟。 可以通过逐点输入坐标或导入外部的坐标位置 也可以通过阵列的方式定义点 定义完点后就利用create fasteners,选择point-based,选取刚才创建好的点阵列,然后定义连接的属性,如下图 定义connector section时,类型选择translator,相当于只有1方向可以动,定义弹性模量以及破坏准则。 案例操作 假如有两个板,通过...

fiber_tape的博客 7343

Java开发中的23种设计模式详解

Java开发中的23种设计模式详解

gfuugff的博客 6万+

2026终极反反爬:Canvas/WebGL/字体指纹全维度伪装,应对浏览器检测实战指南

本文分享了2026年浏览器指纹检测现状及全维度伪装方案。当前反爬系统采用多维度联合指纹检测,重点针对硬件级(WebGL、Canvas)、系统级(字体、CPU)和行为级(鼠标移动)指纹。作者设计了一个独立的指纹伪装引擎,包含真实设备指纹库、指纹生成器和统一注入层,通过JS沙箱隔离实现伪装。核心方案包括:Canvas指纹通过真实设备渲染差异添加微偏移;WebGL指纹完整劫持上下文返回真实显卡参数;字体指纹劫持measureText方法模拟不同系统字体宽度。该方案实测可连续运行一个月零封号,解决了传统方法易被检测

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 927

uniapp - 超详细 H5 网页引入百度地图教程,附地图示例 / 获取当前设备定位的省市区、详细地址、经纬度信息 / 用户当前 IP 属地定位地理位置等等(新手小白快速上手,详细配置及使用全流程)

uniapp百度地图,uniapp百度地图ip属地定位,uniapp百度地图获取省市区详细地址经纬度等,uniapp百度地图当前用户设备定位省份市区详细所在地ip属地等详细教程示例,uniapp网页h5引入百度地图详细教程,uniapp h5网站使用百度地图详细教程,uniappH5端如何接入使用百度地图api,uniapp H5网页端百度地图获取地理位置信息,uniapp h5页面引入百度地图,uniapp h5平台百度地图获取城市信息,uniapp百度地图获取经纬度,uniapp 百度地图拿省市区用什么

🏆 前端领域优质创作者 6218

Java常见的23种设计模式

大家好,我是钢板兽! 本文将系统梳理 Java 的设计模式,涵盖创建型、结构型和行为型三大类,结合定义、原理、优点、应用场景、示例代码,帮助你初步了解常见的23种设计模式。

weixin_49426115的博客 2481

openCv +3.4.0 车牌定位(C++版本)

#include <iostream> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc.hpp> #include "opencv2/shape.hpp" using namespace ...

Bamboo265925的博客 2337

Java23种设计模式案例

本文介绍了23种经典设计模式,分为创建型、结构型和行为型三大类,并提供了具体实现示例。 创建型模式(5种)解决对象创建问题: 单例模式:确保类唯一实例 工厂方法:子类决定实例化类 抽象工厂:创建相关对象家族 建造者:分步构建复杂对象 原型:复制现有对象 结构型模式(7种)优化类结构: 适配器:接口转换 装饰器:动态添加功能 代理:控制对象访问 桥接:分离抽象与实现 组合:树形结构管理 外观:简化子系统调用 享元:共享对象减少内存 行为型模式(11种)处理对象交互: 责任链:请求沿链传递 命令:封装操作为对象

晨港飞燕的专栏 1681

mapbox 从入门到精通 - 目录

欢迎大家来到gis分享者的《mapbox 从入门到精通》专栏。博主列出学习大纲,如果有什么问题,欢迎留言。

我哎GIS博客 5847

飞牛NAS系统盘占用过高排查与解决全记录(已有效解决)

📢NAS弹出系统盘占用过高预警?别慌!亲测解决全流程来啦~ 精准定位根源+安全迁移数据,附详细实操步骤,帮同款困扰的你高效释空间、少走弯路!

XiaoqiangClub的博客 3138

23种设计模式之单例模式

设计模式是前辈们对代码开发经验的总结,是解决特定问题的一系列套路,他不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案 1995年,GoF合作出版了《设计模式:可复用面向对象软件的基础》一书,收录了23中设计模式,从此树立了软件设计模式领域的里程碑,人称GoF设计模式

JAVA开发区的博客 346

[Dify实战] [安全合规] 用 Dify 优化安全巡检:从经验驱动到标准闭环-带绑定资源

摘要:企业信息系统安全管理中,安全合规巡检面临标准不统一、整改难追踪等痛点。本文提出基于Dify工具的智能化解决方案,通过自动化工作流实现标准检查清单生成、风险等级标注、整改建议输出及审计记录归档。方案采用结构化Prompt模板和Markdown输出格式,涵盖账号权限、数据安全等核心维度,并提供证据收集建议和闭环管理机制,帮助组织从人工经验驱动转向数据流程驱动的合规管理。配套可导入Dify的工作流文件将随后发布。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 272

java23种设计模式一(连载)

设计模式概要 设计模式,顾名思义,它是一种模式,在面向对象中,它运用类与它们的方法来达到目标。使用它便于代码的可重用和可读性,有利于系统的维护。《Design pattern》一书中首次提出了23种设计模式,倘若你想成为编程高手,就必须要学习设计模式。 以下...

chongsi9495的博客 135

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

23种设计模式 Java 单例模式

设计模式分类 创建型模式 用于描述“怎样创建对象”,它的主要特点是将对象的创建与使用分离 GoF (四人组) 书中提供了单例,原型,工厂方法,抽象工厂,建造者等 5种创建型模式 单例设计模式 单例模式概念 单例模式 是JAVA 中最简单的设计模式之一 这种类型的设计模式属于创建型模式 他提供了一种创建对的最佳方式 这种模式设计一个单一的类 该类负责创建自己的对象 用时确保只有单个对象被创建 这个类提供了一种访问其唯一的对象的方式。 单例模式的实现 饿汉式 饿汉式:类加载就是导致该单实例对象被创建 类加载的时

m0_46937429的博客 1217

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

JAVA的23种设计模式

设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是它能被广泛应用的原因。

“ 春风若有怜花意,能否许我再少年。” 1135

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

复习23种设计模式JAVA篇

设计模式 design Pattern 是一套被反复使用,为多少人知晓,经过分类编目的,代码设计经验的总结 23种设计模式 23种设计模式 创建型 结构型 行为型 类 FactoryMethod 工厂方法 Adapter_class(适配类型) Interpreter(解释型) Template Method 模板类型 对象 Abstract Factory(抽象工厂) Builder(生成器) P.

keny-大成的博客 5073

JAVA23种设计模式【一】

设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案

qq1328585964的博客 961

23种设计模式之单例模式以及在MyBatis中的应用

MyBatis

qq_43538697的博客 922

java23种设计模式-单例模式

单例模式属于创建型设计模式,确保一个类只有一个实例,并提供全局访问点。是Java中最简单但实现最复杂的设计模式。

专注后端开发 1154
上一篇: springboot批量修改报错,解决mybatis不支持sql批量执行的问题
下一篇: Java23种设计模式(二):原型模式
秃头老赵_
博客等级 码龄9年 16粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秃头老赵_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值