JavaSE第11篇:设计模式

一、创建型模式

1、工厂方法模式

2、抽象工厂模式

3、单例模式singleton

java 复制代码
/**
 * 单例
 * 饿汉式(线程安全的):在加载类的时候就会创建类的单例,并保存在类中。
 * 1.定义类变量实例并直接实例化,在类加载的时候就完成了实例化并保存在类中;
 * 2.定义无参构造器,用于单例实例.
 * 3.定义公开方法,返回已创建的单例.

 * 懒汉式(线程不安全的): 懒汉式就是不在系统加载时就创建类的单例,而是在第一次使用实例的时候再创建。
 * 1.定义一个私有类变量来存储单例,私有的目的是指外部无法直接获取这个变量,而要使用提供的公共方法来获取.
 * 2.定义私有构造器,表示只在类内部使用,亦指单例的实例只能在单例类内部创建
 * 3.定义一个公共的公开的方法来返回该类的实例,由于是懒汉式,需要在第一次使用时生成实例,所以为了线程安全,
 * 使用synchronized关键字来确保只会生成单例.
 * 代理模式
 *
 * @Author liming
 * @Date 2023/6/15 14:59
 */
public class SingletonTest {
    //饿汉在类加载的时候创建类的单例
/*    //1、创建类的实例变量
    private static SingletonTest singletonTest = new SingletonTest();

    //2、提供一个无餐构造器
    private SingletonTest() {
    }

    //3、提供一个静态方法
    public static SingletonTest getInstance() {
        return singletonTest;
    }*/

    //懒汉在调用时创建单例对象
    //1、提供一个私有的实例变量
    private static SingletonTest singletonTest;

    //2、定义私有构造器
    private SingletonTest() {
    }



    //3、提供公共方法
    public static SingletonTest getInstance() {
        if (singletonTest == null) {
            synchronized (SingletonTest.class) {
                if (singletonTest == null) {
                    singletonTest = new SingletonTest();
                }
            }
        }
        return singletonTest;
    }


}

4、建造者模式

5、原型模式

二、结构型模式

1、适配器模式

2、装饰器模式

3、代理模式

4、外观模式

5、桥接模式

6、组合模式

7、享元模式

三、行为模式

1、策略模式

2、模版方法模式

3、观察者模式

4、迭代子模式

5、责任链模式

6、命令模式

7、备忘录模式

8、状态模式

9、访问者模式

10、中介者模式

11、解释器模式

相关推荐
方也_arkling4 小时前
【Java-Day08】static / final / 枚举
java·开发语言
橙淮4 小时前
Spring Bean作用域与生命周期全解析
java·spring
Chengbei114 小时前
一站式源码安全检测工具、云安全 / APP / 小程序源码敏感信息递归多层目录扫描AK、JWT、手机号、身份证等敏感信息
java·开发语言·安全·web安全·网络安全·系统安全·安全架构
llz_1124 小时前
web-第一次课后作业
java·开发语言·idea
秋94 小时前
Java项目运行5天左右自动宕机:系统性定位与解决方案
java·开发语言·python
小江的记录本4 小时前
【JVM虚拟机】垃圾回收GC:垃圾收集器:CMS:核心原理、回收流程、优缺点、废弃原因(附《思维导图》+《面试高频考点清单》)
java·jvm·后端·python·spring·面试·maven
DIY源码阁5 小时前
JavaSwing学生成绩管理系统 - MySQL版
java·数据库·mysql·eclipse
basketball6166 小时前
C++ NULL 和 nullptr 区别 以及 nullptr 的核心实现
java·开发语言·c++
JAVA面经实录9176 小时前
MyBatis面试题库
java·mybatis
小江的记录本6 小时前
【JVM虚拟机】垃圾回收GC:垃圾回收算法:标记-清除、标记-复制、标记-整理、分代收集(附《思维导图》+《面试高频考点清单》)
java·jvm·后端·python·算法·安全·面试