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

devtools/2025/3/15 20:20:40/

设计模式概述

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

设计模式有哪些

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

GoF设计模式的分类

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

单例模式singleton

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

饿汉式单例模式

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

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

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

java">public class Singleton {// 定义一个静态变量private static s = new Singleton()// 构造方法私有化,不让外界使用构造方法创建对象private Singleton(){}// 提供一个公开的获取实例静态方法//一定要是静态的,不需要new对象,通过类名就能访问public static Singleton getSingleton() {return s;}
}

懒汉式单例模式

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

  1. 构造方法私有化
  2. 对外提供公开的静态方法,获取实例
  3. 提供一个静态变量,但是这个变量值为null;
java">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的朋友们提供一点帮助。


http://www.ppmy.cn/devtools/167362.html

相关文章

Word 小黑第19套

对应大猫20 设置页眉 鼠标点左边空白,开始 -边框 -边框和底纹 应用于段落 预览下边框的位置 文档部件→域→文档信息→Docp~→邮编 表布局 -自动调整 -根据窗口 列等宽 -表布局 -分布列 制表格 (看文字间用什么符号分隔)点显示和隐藏标…

基于“动手学强化学习”的知识点(二):第 15 章 模仿学习(gym版本 >= 0.26)

第 15 章 模仿学习(gym版本 > 0.26) 摘要 摘要 本系列知识点讲解基于动手学强化学习中的内容进行详细的疑难点分析!具体内容请阅读动手学强化学习! 对应动手学强化学习——模仿学习 # -*- coding: utf-8 -*-import gy…

VSTO(C#)Excel开发10:启动和卸载顺序 事件处理 监视变化

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…

芯谷78M05:三端正电压调节器的稳定之选

在电子电路设计中,稳定的电源供应是确保系统正常运行的关键因素之一。78M05作为一款经典的三端正电压调节器,以其简单、可靠和高效的特性,成为了众多工程师在5V电源设计中的首选。本文将深入探讨芯谷78M05的特性、电气参数、典型应用电路以及…

虚拟机新挂载磁盘后磁盘无法使用ssh问题 Permission denied (publickey).

在给vmware虚拟机挂载磁盘后再新磁盘目录里面使用ssh拉取代码一直报错: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. manifests: 虚拟机可以添加硬盘,…

ESP32-H2芯片模组方案,设备物联网通信,智能化无线控制联动

在当今数字化浪潮席卷全球的时代,物联网已不再是一个遥远的概念,它正以迅雷不及掩耳之势,渗透进我们生活与生产的每一个角落。 清晨,阳光透过智能窗帘洒在脸上,智能音箱贴心地播放着今日的新闻与天气;出门…

基于Spring Boot的网上宠物店系统的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…

解决 React 中的 Hydration Failed 错误

解决 React 中的 Hydration Failed 错误 React 的 服务器端渲染(SSR)通过在服务器端生成 HTML 并将其发送给客户端,帮助提高页面加载速度和搜索引擎优化(SEO)。然而,在进行 SSR 后,React 需要进…