当前位置: 首页 > news >正文

30天学习Java第四天——设计模式

设计模式概述

设计模式是一套被广泛接受的、经过试验的、可反复使用的基于面向对象的软件设计经验总结,它是开发人员在软件设计时,对常见问题的解决方案的总结和抽象。
一句话就是,设计模式是针对软件开发中常见问题和模式的通用解决方案。

设计模式有哪些

  1. GoF设计模式:最常用的,四人组(Gang of Four)
    单例模式是其23中设计模式之一
  2. 架构设计模式
  3. 企业级设计模式
  4. 领域驱动设计模式
  5. 并发设计模式
  6. 数据访问模式

GoF设计模式的分类

  1. 创建型:解决对象的创建问题
  2. 结构型:通过设计和构建对象之间的关系,以达到更好的重用性、扩展性和灵活性
  3. 行为型:主要用于处理对象之间的算法和责任分配

单例模式singleton

单例模式属于创建型的设计模式

饿汉式单例模式

如何实现饿汉式单例模式?

  1. 构造方法私有化
  2. 对外提供公开的静态方法,获取实例
  3. 定义一个静态变量,接收类的实例化对象。静态变量在类加载时初始化,只执行一次,从而达到只创建一个实例的目的。

由于饿汉式单例模式,在类加载时就创建出来对象,无论用于不用对象都创建出来了,称为饿汉单例模式。

public class Singleton {
	// 定义一个静态变量
	private static s = new Singleton()
	
	// 构造方法私有化,不让外界使用构造方法创建对象
	private Singleton(){

	}
	// 提供一个公开的获取实例静态方法
	//一定要是静态的,不需要new对象,通过类名就能访问
	public static Singleton getSingleton() {
		return s;
	}
}

懒汉式单例模式

如何实现饿汉式单例模式?

  1. 构造方法私有化
  2. 对外提供公开的静态方法,获取实例
  3. 提供一个静态变量,但是这个变量值为null;
public class Singleton {
	// 定义一个值为null的静态变量
	private static s = null;
	
	// 构造方法私有化,不让外界使用构造方法创建对象
	private Singleton(){

	}
	// 提供一个公开的获取实例静态方法
	//一定要是静态的,不需要new对象,通过类名就能访问
	public static Singleton getSingleton() {
		// s没有的时候再去创建
		if(s == null){
			s= new Singleton();	
		}
		return s;
	}
}


注:本文章源于学习动力节点老杜的java教程视频后的笔记整理,方便自己复习的同时,也希望能给csdn的朋友们提供一点帮助。

相关文章:

  • RabbitMQ之旅(2)
  • Python----数据可视化(Pyecharts三:绘图二:涟漪散点图,K线图,漏斗图,雷达图,词云图,地图,柱状图折线图组合,时间线轮廓图)
  • 阿里云魔笔低代码应用开发平台快速搭建教程
  • 【C++】string类的相关成员函数以及string的模拟实现
  • leecode200.岛屿数量
  • Nginx快速上手
  • 【AI与大模型】解锁本地大模型的潜力:Ollama API 调用深度解析与实践指南
  • springboot常用注解
  • YOLOv11来了,使用YOLOv11训练自己的数据集和推理(附YOLOv11网络结构图)
  • WinForm基础知识1-20
  • dockerfile 编写入门
  • DeepSeek linux服务器(CentOS)部署命令笔记
  • Linux date 命令使用指南
  • 利用亚马逊云科技”多模态AI知识库“获取非结构化数据总结
  • 信息学奥赛一本通 1449:【例题2】魔板
  • 算法系列之回溯算法求解数独及所有可能解
  • Mysql篇——SQL优化
  • 工程化与框架系列(33)--前端安全实践指南
  • Android,Java,Kotlin 确保线程顺序执行的多种实现方式
  • Java EE Web环境安装
  • 俄代表团:16日上午将继续“等候乌代表团”
  • 江西3人拟提名为县(市、区)长候选人
  • 现场丨在胡适施蛰存等手札与文献间,再读百年光华
  • 盛和资源海外找稀土矿提速:拟超7亿元收购匹克,加快推动坦桑尼亚项目
  • 文化润疆|为新疆青少年提供科普大餐,“小小博物家(喀什版)”启动
  • “中国神湖”加快放大资源规模!3亿美元换海外年产380万吨钾盐项目