首页 > 编程语言 >每日总结Java设计模式之单例模式

每日总结Java设计模式之单例模式

时间:2023-11-02 09:12:18浏览次数:36  
标签:StudentID Java 模式 instance 实例 单例 设计模式 public

今天做了单例模式的实验代码

在有些系统中,为了节省内存资源、保证数据内容的一致性,对某些类要求只能创建一个实例,这就是所谓的单例模式。

单例模式有 3 个特点:

  1. 单例类只有一个实例对象;
  2. 该单例对象必须由单例类自行创建;
  3. 单例类对外提供一个访问该单例的全局访问点;

1. 单例模式的结构

单例模式的主要角色如下。

  • 单例类:包含一个实例且能自行创建这个实例的类。
  • 访问类:使用单例的类。

实验案例

[实验任务一]:学号的单一

仿照课堂的身份证的例子,实现每个同学仅有一个学号这一问题。

代码如下

public class StudentID {

private static StudentID instance=null;

private String ID;

 

public String getID() {

return ID;

}

 

public void setID(String iD) {

ID = iD;

}

 

private StudentID()

{

 

}

 

public static StudentID getStudentID()

{

if(instance==null) {

instance=new StudentID();

instance.setID("20194080");

}

else

{

System.out.println("一个学生只能有一个学号");

}

return instance;

}

 

标签:StudentID,Java,模式,instance,实例,单例,设计模式,public
From: https://www.cnblogs.com/lxh-666/p/17804643.html

相关文章

  • Java while 和do while 循环
    循环是程序中的重要流程结构之一。循环语句能够使程序代码重复执行,适用于需要重复一段代码直到满足特定条件为止的情况。所有流行的编程语言中都有循环语句。Java中采用的循环语句与C语言中的循环语句相似,主要有while、do-while和for。另外Java5之后推出了for-each循环语......
  • gin框架curd 和java springboot crud 的比较及性能
    Gin框架与SpringBoot框架的CURD比较Ginvs.SpringBoot:简介Gin(Go语言):Gin是用于构建Web应用程序和API的轻量级、高性能框架,使用Go编程语言。它以简洁和高性能而闻名。SpringBoot(Java):SpringBoot是一个用于构建基于Java的Web应用程序的开源Java框架。它简化了使......
  • Java while 和do while 循环
    循环是程序中的重要流程结构之一。循环语句能够使程序代码重复执行,适用于需要重复一段代码直到满足特定条件为止的情况。所有流行的编程语言中都有循环语句。Java中采用的循环语句与C语言中的循环语句相似,主要有while、do-while和for。另外Java5之后推出了for-each循环......
  • Java笔记—Java修饰符
    Java语言提供了很多修饰符,主要分为以下两类:访问修饰符非访问修饰符1、访问控制修饰符Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java支持4种不同的访问权限。default (即默认,什么也不写):在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方......
  • Java笔记—Java修饰符
    Java语言提供了很多修饰符,主要分为以下两类:访问修饰符非访问修饰符1、访问控制修饰符Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java支持4种不同的访问权限。default (即默认,什么也不写):在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方......
  • overflow溢出属性 前端基础之JavaScript
    今日内容详细overflow溢出属性visible 默认值。内容不会被修剪,会呈现在元素框之外。hidden 内容会被修剪,并且其余内容是不可见的。scroll 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。auto 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。●over......
  • Java工程师必备-一些资料的整理
    [Java工程师必备+学习+知识点+面试]:包含计算机网络知识、JavaSE、JVM、Spring、Springboot、SpringCloud、Mybatis、多线程并发、netty、MySQL、MongoDB、Elasticsearch、Redis、HBASE、RabbitMQ、RocketMQ、Pulsar、Kafka、Zookeeper、Linux、设计模式、智力题、项目架构、分布式......
  • 六、Java常用类:Object,Scanner
    一、Object类Object:ClassObject是类Object结构的根。每个Class都有Object作为超类。所有对象(包括数组)都实现了这个类的方法。成员方法:publicinthashCode()用来生成对象的唯一哈希码(hashcode),它是用来快速比较两个对象是否相等的publicfinalClassgetClass()......
  • javaweb--resultMap
    resultMap可以灵活的实现数据库列名和java类中的属性名的映射 1、定义<resultMap>标签2、在<select>标签中,使用resultMap属性替换resultType属性 ......
  • 五、Java面向对象:多态
    一、多态介绍概述:顾名思义就是事物在某种时刻的多种状态前提;1、要有继承关系2、要有方法的重写3、要有父类的引用指向子类对象 访问成员的特点:访问成员变量:编译看左,运行看左访问成员方法:编译看左,运行看右访......