Singleton就是只能创建一个实例对象,所以不能拥有public的构造方法。
public class Singleton
{
private Singleton(){}
}
既然构造方法是私有的,那么从外面不可能创建实例了,只能从内部创建并用一个方法来返回此实例。那么此方法必须是static的,这样在外部不能创建实例的情况下才能调用此方法获得实例。
public class Singleton{
private Singleton(){}
public static Singleton getInstance(){
return [Singleton Instance];
}
}
getInstance方法要返回一个Singleton实例,就需要一个Singleton类型的变量来存储。声明一个Singleton类型的属性,必须是static 的,因为静态方法只能访问静态属性。
public class Singleton{
private Singleton(){}
public static Singleton getInstance(){
single=new Singleton();
return single;
}
private static Singleton single;
}
这样就能获得Singleton的实例了,但并不能确保只生成一个实例,因此需做判断。
public class Singleton{
private Singleton(){}
public static Singleton getInstance(){
if(single==null){
single=new Singleton();
}
return single;
}
private static Singleton single;
}
上面的方法只能用于单线程环境,在多线程环境中需要通过同步来解决
public class Singleton{
private Singleton(){}
public synchronized static Singleton getInstance(){
if(single==null){
single=new Singleton();
}
return single;
}
private static Singleton single;
}
另一种实现方法是提前实例化
public class Singleton{
private static Singleton single=new Singleton();
private Singleton(){}
public static Singleton getInstance(){
return single;
}
}
此时single的static修饰符有起到另一个作用:因为static类型的属性,只在类加载时初始化一次,以后不会再初始化了,确保了只有一个实例。
分享到:
相关推荐
适用于RD-EB、RD-ET、RD-EZ、RD-EB-MX、RD-ET-MX、RD-EZ-MX、KRD-EB、KRD-ET、KRD-EZ、KRD-EB-MX、KRD-ET-MX、KRD-EZ-MX 、SRD-R100、Q3-R100、Q3-R101、Q3-R102、DP-R103、DP-R 113、DP-R123、DP-R133、DP-R143、...
《DP-301U网络打印服务器驱动:深入解析与应用指南》 在现代办公环境中,网络打印服务器扮演着至关重要的角色,它使得多台计算机能够通过网络共享一台打印机,大大提高了工作效率。D-LINK公司的DP-301U网络打印...
DP-302的USB接口打印服务器为用户提供在局域网内分享他们的打印机的服务,并对于那些DP-302兼容的打印机产品提供在线打印服务。DP-302打印服务器允许多个用户直接从电脑上发送文件传输到打印机上进行打印工作。在...
《天际航图像快速建模系统DP-Modeler2.3》是一款专为3D建模和视觉效果设计的专业软件,结合了先进的图像处理技术和高效的工作流程,旨在为用户提供便捷、精准的三维模型构建能力。DP-Modeler是天际航公司的明星产品...
【D-Link DP-302 打印服务器驱动】是一款专为D-Link公司的DP-302打印服务器设计的驱动程序。该驱动程序在IT领域中扮演着至关重要的角色,因为它允许计算机与DP-302打印服务器之间进行有效的通信,确保打印机能够正确...
对于松下DP-8016P/PK打印机,32位驱动是专为运行32位操作系统的计算机设计的,确保了打印机在这样的系统环境下能正常运行。 安装过程相对简单,主要分为以下几个步骤: 1. **添加打印机**:在Windows操作系统中,...
qsh-030-01-x-d-a;qsh-040-01-x-d-dp-a;qte-040-04-xxx-d-a;qte-040-xx-x-d-a (1);qth-030-01-x-d-a-l;qth-030-01-xx-d-a;qth-030-01-xx-d-a封装PCB,官方下载
标题 "DP-301U_UTILITY_PSADMIN_1.00" 提及的是D-Link公司的DP-301U打印共享器的特定版本工具,即PSAdmin 1.00。这款设备允许多台计算机通过网络共享一台打印机,提高了办公效率。DP-301U是一个实用的解决方案,尤其...
**DP-301U**是一款由D-Link推出的紧凑型打印服务器,专为实现网络共享打印而设计。它通过高速USB端口连接USB打印机,使得局域网内的任何计算机都能方便地访问该打印机。 - **特点**: - 紧凑型设计,节省空间; -...
DP-600考试是获得MCP认证所需的考试之一,专注于Azure数据工程领域,包括设计、构建和管理大规模数据处理解决方案的能力。 ### 描述:“必备的助力资源” 此描述暗示了文档内包含的内容是备考DP-600考试时不可或缺...
根据提供的文档内容,DP-504和DP-508步进驱动器是信捷科技电子有限公司生产的产品,它们主要具备以下知识点: 产品概述: DP-504/DP-508步进驱动器是一类细分型步进驱动器,适用于各种中小型自动化设备和仪器。这些...
### DP-ModelerV2.3 用户手册知识点详解 #### 1. 系统简介 **1.1 产品概述** DP-ModelerV2.3是一款由武汉天际航信息科技股份有限公司研发的图像快速建模系统。该系统主要用于通过二维图像数据构建高质量的三维...
标题"DP-DP-Koppler_Rel3_www.44dpdp.com_www.44dpdp.con_EC1-DEB-DPM_GSD"中提到的"DP-DP-Koppler"可能指的是一个特定的软件或系统开发项目,其中"DP"可能是项目代号或者代表“Data Processing”的缩写,而"Koppler...
D-Link DP-302打印服务器是一款专为网络打印环境设计的设备,它能够将传统的并行或串行打印机转换为网络打印机,使多台电脑能够在同一网络环境下共享打印资源。这款设备的核心在于其配套的软件,即DP-302打印服务器...
D-Link DP-302 打印服务器固件,最新V1.03版本。也是最终版本,支持更多打印机。
标题中的"DP-means"和"k-means"都是在数据挖掘和机器学习领域广泛应用的聚类算法。这两种方法主要用于无监督学习,即在没有预先指定类别的情况下,将数据集中的对象自动分组到不同的类别中。现在,我们将深入探讨这...
DP-851单板计算机作为工业自动化和数据处理的先驱,在其时代扮演了重要的角色。时至今日,随着技术的飞速发展,DP-851虽然已经退出了主流应用市场,但它的历史地位和影响仍然不容忽视。对于那些致力于研究计算机历史...
DP-100文档是Microsoft Azure认证考试中的一个重要组件,旨在考察考生的数据科学解决方案设计和实现能力。本文档涵盖了DP-100考试的部分内容,涉及到数据科学解决方案的设计、实现和部署等方面。 从题目中,我们...
DP-301U_v2.36 固件是一款针对DP-301U设备的重要软件升级包,它的发布标志着这一系列固件的最终版本,不再有后续更新。固件在IT领域中扮演着核心角色,它是设备的操作系统,控制并管理硬件的功能,确保设备能够稳定...