前序
模式其实就是指被实践证明了的对常规问题的有效解决方案,比如说我国的明太祖朱元墇在建立大明之前,所采纳的其谋士朱升提出的成功策略(即等同于我们这里我说的“模式”)—“高筑墙、广积粮、缓称王”,这就是一种极具战略眼光的斗争“模式”。
设计模式(Design Pattern)属于系统分析设计范畴,在面向对象的软件设计和开发中占据着非常重要的地位,好的设计模式可以使我们更加方便地重用已有的成功设计和体系结构,进而极大地提高代码的重用性和可维护性。
设计模式并不涉及新的语法规则,而是对现有规则的典型运用。
Singleton设计模式
概述
Singleton模式要求一个类有且仅有一个实例,并且提供了一个全局的访问点。这就提出了一个问题:如何绕过常规的构造器,提供一种机制来保证一个类只有一个实例?客户程序在调用某一个类时,它是不会考虑这个类是否只能有一个实例等问题的,所以,这应该是类设计者的责任,而不是类使用者的责任。
从另一个角度来说,Singleton模式其实也是一种职责型模式。因为我们创建了一个对象,这个对象扮演了独一无二的角色,在这个单独的对象实例中,它集中了它所属类的所有权力,同时它也肩负了行使这种权力的职责!
意图
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
举例
public class Singleton
{
//定义实例变量name和类成员single
private String name;
private static Singleton single;
//为了避免生成类的多个实例,将类的构造方法定义成为private
private Singleton(){};
//类的getter()和setter()方法
public void setName(String name)
{
this.name = name;
}
public String getName()
{
return name;
}
//生成类的实例,并且仅在第一次使用时生成
//由于不能直接生成对象,所以getSingle()只能是类方法
public static Singleton getSingle()
{
if(single == null)
{
single = new Singleton();
}
return single;
}
//验证设计的正确性
public static void main(String[] args)
{
//生成实例instanceA,用户名为Tom
Singleton instanceA = Singleton.getSingle();
instanceA.setName("Toms");
System.out.println("instanceA of Name:"+instanceA.getName());
//生成第二个实例instanceB
Singleton instanceB = Singleton.getSingle();
//如果输出Toms,则说明Singleton只生成了一个对象,istanceA和instanceB是同一个实例
System.out.println("instanceB of Name:"+instanceB.getName());
}
}
运行结果
instanceA of Name:Toms
instanceB of Name:Toms
小结
Singleton类的实例只在第一次需要的时候才创建,与普通类的实例相比,会相对节省点系统资源。这种到使用时才进行对象创建和初始化的方式称为迟钝初始化(Lasy Initializtion)。在多线程应用中,迟钝初始化可能会导致多个实例并存的问题,因此在多线程环境下应避免使用。
相关推荐
当前中国餐饮行业正在经历着新冠疫情的影响和单身经济的兴起,两种趋势共同催生了餐饮行业中的新业态——“一人食”模式。以下对这一新业态的市场发展现状和前景进行详细解读: 1. 新冠疫情下的分餐模式与“一人食...
单例设计模式是一种重要的软件设计模式,用于确保一个类只有一个实例,并提供全局访问点。这种模式在C++中尤其常见,因为它允许多个组件共享同一对象,从而提高效率和一致性。以下是对C++单例模式的详细说明: 1. *...
现在,我将从生活、学习、人际关系以及电脑使用四个方面对我的大学第一学期做一个小结。 首先,生活是大学生活中不可或缺的一部分。与高中相比,大学生活充满了更多自我管理的要求。我从一个凡事依靠父母安排的小孩...
"一人食"模式的兴起,满足了他们对独立空间和个性化体验的追求,比如小型单人餐桌、自助式小火锅、迷你KTV包间等,这些都为单身消费者提供了更加舒适和自由的用餐环境。 其次,"一人食"模式促进了餐饮业的创新。...
【标题】:中国餐饮行业调研简报:单身经济催生餐饮新业态,“一人食”模式发展前景如何? 【摘要】:新冠疫情促使餐饮行业对“一人食”模式的关注度提升,以减少接触和降低感染风险。随着单身人口数量的增长,尤其...
10. **大数据分析的应用**:报告可能展示了如何利用大数据分析技术来深入理解单身人群的行为模式和偏好,为企业提供更精准的市场洞察。 11. **社交媒体的作用**:社交媒体成为单身人群寻找伴侣、建立社交关系的重要...
尽管文档中没有明确的游戏规则和背景信息,我们可以推测,这游戏可能是单人模式的游戏,玩家需要与电脑对弈;也可能是双人对弈游戏,玩家之间可以互相较量智慧和策略。在这个游戏中,玩家必须先熟悉每个角色的特性和...
单身人士数量的增加催生了专门针对这个群体的教育资源需求,因而单身教程网站应运而生。这类网站提供各类教程,帮助单身人群在社交、自我提升、情感管理以及约会等方面进行学习和成长。而在这样的背景下,“单身教程...
设计模式是软件工程中的一种重要思想,它是在特定情境下,为解决常见问题而总结出的最佳实践。在Java编程中,设计模式的应用极大地提升了代码的可读性、可维护性和可扩展性。这个压缩包“设计模式实现代码”包含的是...
这份调研报告详细分析了2021年单身青年的安家置业情况,其中包含了多个与房地产市场以及年轻人的生活态度紧密相关的知识点。 首先,报告描绘了单身青年的置业意愿画像。在不同的婚恋状态下,青年的生活状态和置业...
单身青年群体的庞大使得他们的消费行为对市场产生了不小的影响,其中包括购房消费。 报告通过问卷调研的形式,对单身青年的婚恋置业观进行了深入分析。结果显示,单身青年更倾向于平等的婚恋置业观,超半数的人认为...
本资料主要聚焦于Java语言中的设计模式应用,包括“单身汉模式”(Singleton)和“工厂模式”等。 首先,我们来深入理解“单身汉模式”。单身汉模式是一种创建型设计模式,它确保一个类只有一个实例,并提供一个...
标题中的“同城单身盲盒最新版来袭”表明这是一个与在线社交和娱乐相关的应用程序,它采用了“盲盒”的概念,即用户在不知道具体内容的情况下购买或开启一个“盒子”,以获得神秘的奖品或体验。这种模式在当前市场上...
报告指出,95后单身的原因主要包括没有遇到合适的人、社交圈小且宅、工作忙等。其中,77.01%的95后认为没有遇到合适的人是单身的主要原因,社交圈小缺少异性朋友和宅在家缺少社交活动分别占比58.78%和29.59%。工作忙...
随着中国社会的迅速发展,特别是在北京、上海、广州、深圳这四大一线城市中,单身女性群体的生活状态和消费行为日益受到社会各界的关注。本篇报告基于极光大数据和珍爱网数据,深入探讨了这一特定人群的生活、工作、...
在中国,单身经济的发展已成为一种显著的社会现象,它不仅改变了消费者的消费模式,还对各行各业产生了深远影响。这个主题的研究主要集中在以下几个关键领域: 1. **单身人口增长与消费趋势**:近年来,中国的单身...
单身经济专题研究报告:单身经济崛起,消费新势力抬头(75页),资源名称:单身经济专题研究报告:单身经济崛起,消费新势力抬头(75页)单身经济专题研究报告:单身经济崛起,消费新势力抬头-国金证券-2019.2-75页....