好乐买的网站推广方式/深圳seo外包

好乐买的网站推广方式,深圳seo外包,按天计费的seo弊端,企业网站建设定制开发服务什么是设计模式 一个问题通常有种解法,其中肯定有一种解法是最优的,这个最优的解法被人总结出来了,称之为设计模式。 设计模式有20多种,对应20多种软件开发中会遇到的问题。 关于设计模式,主要学什么? 解…

什么是设计模式

一个问题通常有种解法,其中肯定有一种解法是最优的,这个最优的解法被人总结出来了,称之为设计模式。

设计模式有20多种,对应20多种软件开发中会遇到的问题。

关于设计模式,主要学什么?

解决什么问题?

怎么写?

单例设计模式

单例模式是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点来获取这个实例。在某些场景下,我们只需要一个对象来协调系统中的各项操作,例如配置管理、数据库连接池等,单例模式就非常有用。

单例模式写法

饿汉式单例模式的特点

饿汉式单例模式是单例模式的一种实现方式,其特点是在类加载时就创建了唯一的实例。这意味着无论是否需要使用该实例,它都会在类加载时被创建,因此被称为“饿汉式”。

代码实现分析

public class A {// 1. 私有化构造器:确保单例类无法创建太多实例,保证单例实现的可能性private A(){}// 2. 定义一个静态变量:用于存储本类的唯一实例private static A a = new A();// 3. 提供一个静态方法:用于获取本类的唯一实例public static A getA(){return a;}
}
  • 私有化构造器:private A() {},将构造器私有化,这样外部类就无法通过 new 关键字来创建 A 类的实例,保证了类的实例只能在类内部创建。
  • 静态变量存储唯一实例:private static A a = new A();,在类加载时就创建了 A 类的实例,并将其存储在静态变量 a 中。由于 a 是静态的,所以它属于类而不是类的实例,全局只有一份。
  • 静态方法获取唯一实例:public static A getA() { return a; },提供一个静态方法 getA() 用于获取 A 类的唯一实例。外部类可以通过 A.getA() 来获取该实例。
public class Test {public static void main(String[] args) {// 目标:掌握单例设计模式的实现方式A a1 = A.getA();A a2 = A.getA();System.out.println(a1 == a2);System.out.println(a1);System.out.println(a2);}
}

测试代码:在 main 方法中,通过 A.getA() 方法分别获取两个 A 类的实例 a1a2,然后比较它们的引用是否相等。由于饿汉式单例模式保证了类只有一个实例,所以 a1a2 的引用是相等的,输出结果为 true

小结

  • 什么是设计模式,设计模式主要学什么?单例模式解决了什么问题?
    • 具体问题的最优解决方案。
    • 解快了什么问题?怎么写?
    • 确保某个类只能创建一个对象。
  • 单例怎么写?饿汉式单例的特点是什么?
    • 把类的构造器私有;定义一个静态变量存储类的一个对象;提供一个静态方法返回对象。
    • 在获取类的对象时,对象已经创建好了。
  • 单例有啥应用场景,有啥好处?
    • 任务管理器对象、获取运行时对象。

懒汉式单例模式

懒汉式单例模式是单例模式的一种实现方式,其特点是在第一次使用该实例时才进行创建,而不是在类加载时就创建。这种方式被称为“懒汉式”,因为它比较“懒”,直到真正需要时才去创建实例。

代码实现分析

  1. 私有化构造器:private B() {},将构造器私有化,防止外部类通过 new 关键字创建 B 类的实例,保证单例的实现。
  2. 静态变量存储实例:private static B b = null;,定义一个静态变量 b 用于存储 B 类的唯一实例,初始值为 null,表示还未创建实例。
  3. 静态方法获取实例:public static B getB(),提供一个静态方法用于获取 B 类的唯一实例。在方法内部,首先检查 b 是否为 null,如果为 null 则创建一个新的 B 类实例并赋值给 b,然后返回 b;如果 b 不为 null,则直接返回 b

测试代码:

main 方法中,通过B.getB()方法分别获取两个 B 类的实例 b1b2,然后比较它们的引用是否相等。由于懒汉式单例模式保证了类只有一个实例,所以 b1b2 的引用是相等的,输出结果为 true

小结

  • 懒汉单例模式的特点是什么?
    • 要用类的对象时才创建对象(延迟加载对象)
  • 懒汉单例模式怎么写?
    • 把构造器私有。
    • 定义一个类变量用于存储对象。
    • 提供一个类方法,保证返回的是同一个对象。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/898377.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机操作系统和进程

目录 一. 操作系统 1. 操作系统的概念 2. 操作系统的功能 二. 进程 1. 进程的概念 2. 进程在系统中的管理 3. PBC (1)pid (2)内存指针 (3)文件标识符 4. 资源分配 5. 进程的调度 (…

【Matlab GUI】封装matlab GUI为exe文件

注:封装后的exe还是需要有matlab环境才能运行 (1)安装MCRinstaller.exe文件,在matlab安装目录下的toolbox/compiler/deploy/win64文件夹里 (2)安装完MCRinstaller.exe,字命令窗口输入&#x…

登山第二十梯:无人机实时自主探索——我是一只小小小鸟

文章目录 一 摘要 二 资源 三 内容 一 摘要 自主探索是无人机 (UAV) 各种应用的基本问题。最近,基于 LiDAR 的探索因其能够生成大规模环境的高精度点云地图而受到广泛关注。虽然点云本身就为导航提供了信息,但许多现有的勘探方…

JAVA序列化与反序列化URLDNS链CC1链

1、序列化的实现 java序列化的是对象属性的,只有实现了Serializable或者Externalizable接口的类的对象才能被序列化为字节序列。(不是则会抛出异常),静态成员变量是属于类的,所以静态成员变量是不能被序列化的&#x…

Android7 Input(一)Android Input服务初始化

本系列博客主要描述Android 7.1系统中输入管理服务InputManagerService的源码分析。 概述 本文主要描述了InputManagerService服务的初始化和启动,在Android7系统上InputManagerService服务的框架如下所示: 注:箭头的方向,并不能真实代表数…

用于 RGB-D 显著目标检测的点感知交互和 CNN 诱导的细化网络(问题)

摘要 问题一:但在对自模态和跨模态的全局长距离依赖关系进行建模方面仍显不足。什么意思? 自模态(Intra-modal)全局依赖:在同一模态内,长距离像素之间的信息交互对于理解全局背景很重要,但 CN…

html5基于Canvas的经典打砖块游戏开发实践

基于Canvas的经典打砖块游戏开发实践 这里写目录标题 基于Canvas的经典打砖块游戏开发实践项目介绍技术栈核心功能实现1. 游戏初始化2. 游戏对象设计3. 碰撞检测系统4. 动画系统5. 用户界面设计 性能优化1. 渲染优化2. 内存管理 项目亮点技术难点突破项目总结 项目介绍 在这个…

MySQL外键约束下的索引删除难题:从报错到完美解决的实战指南

🚨 MySQL外键约束下的索引删除难题:从报错到完美解决的实战指南 🔥 问题背景:一个看似简单的删除操作引发的连环坑 场景复现:某日接到需求,需删除 invite_codes 表中的冗余索引 FKnqn27fyjlgio5y60eieohi0…

Rust嵌入式开发环境搭建指南(基于Stm32+Vscode)

Rust嵌入式开发环境搭建指南(基于Stm32+Vscode) 部分目录如下所示: 目录 简介Rust开发环境安装STM32开发工具链安装VSCode环境配置VSCode插件安装调试器配置项目创建与配置常见问题与解决方案简介 本文档旨在指导开发者如何搭建基于Rust语言的STM32嵌入式开发环境。相比传…

动态规划合集——动态规划基本原理

动态规划合集——动态规划基本原理 动态规划原理1258:【例9.2】数字金字塔 动态规划原理深度优先搜索记忆化搜索动态规划(顺推)动态规划原理题解分析 滚动数组优化动态规划(逆推) 动态规划原理 从数塔问题出发理解动态…

如何让节卡机器人精准对点?

如何让节卡机器人精准对点? JAKA Zu 软件主界面主要由功能栏、开关栏、菜单栏构成。 菜单栏:控制柜管理,机器人管理与软件管理组成。主要功能为对控制柜关机、APP 设置、机器人本体设 置、控制柜设置、连接机器人和机器人显示等功能。 开关…

实时视频分析的破局之道:蓝耘 MaaS 如何与海螺 AI 视频实现高效协同

一、蓝耘 MaaS 平台:AI 模型全生命周期管理的智能引擎 蓝耘 MaaS(Model-as-a-Service)平台是由蓝耘科技推出的 AI 模型全生命周期管理平台,专注于为企业和开发者提供从模型训练、推理到部署的一站式解决方案。依托云原生架构、高…

设计模式(行为型)-策略模式

目录 定义 类图 角色 角色详解 Strategy(抽象策略类)​ Context(环境类 / 上下文类)​ ConcreteStrategy(具体策略类)​ 优缺点 优点​ 缺点​ 使用场景 类行为差异场景​ 动态算法选…

【算法day14】三数之和

三数之和 https://leetcode.cn/problems/3sum/description/ 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。…

10、STL中的unordered_map使用方法

一、了解 1、unordered_map(哈希) unordered_map是借用哈希表实现的关联容器。 访问键值对O(1),最坏情况O(n),例如哈希冲突严重时。【n是一个哈希桶的元素数量】 unordered_map特性 键值对存储&#xff…

C++ 头文件说明

如果一个程序足够大,代码功能很多,可以想象,不可能把代码写在一个cpp文件里。我们需要模块化,这样的好处很多,方便分工合作,可读性提高,调用也方便。 这个要怎么做呢? 很简单直接当…

【Linux系统】Linux进程终止的N种方式

Linux系列 文章目录 Linux系列前言一、进程终止的概念二、进程终止的场景三、进程终止的实现3.1 程序退出码3.2 运行完毕结果正常3.3 运行完毕结果异常3.4 程序异常退出 总结 前言 进程终止是操作系统中,进程的一个重要阶段,他标志着进程生命周期的结束…

【工具类】Java的 LocalDate 获取本月第一天和最后一天

博主介绍:✌全网粉丝22W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…

嵌入式开发之STM32学习笔记day06

基于STM32F103C8T6的开发实践——从入门到精通01 1. 引言 STM32系列微控制器是STMicroelectronics推出的一款高性能、低功耗的32位微控制器,广泛应用于嵌入式系统中。STM32F103C8T6是其中非常受欢迎的一款,凭借其强大的性能、丰富的外设接口和低廉的价格…

AutoHub场景演示|带您领略智能自动化操作的全新体验

AutoHub是一款由OpenCSG推出的基于前沿大型语言模型(LLM)的浏览器自动化工具,旨在通过智能对话交互和自动化技术,帮助用户更高效地浏览网页和完成任务。它不仅能够自动化繁琐的网页操作,还能够为用户提供精准的信息检索…