【java】设计模式-单例设计模式
单例设计模式:解决一个类在内存中是存在一个对象的问题。当需要该事物的对象在内存中唯一时,将以下三步添加即可。
思想:想要保证对象唯一
1.为了避免其他程序过多的建立该类对象,先禁止其他程序建立该类对象
2.为了其他程序访问到该类对象,只好在本类中,自定义一个对象
3.为了方便其他程序对自定义对象的访问,可以对外提供一个访问方式
思想如何实现:
1.讲构造函数私有化
2.在类中建立一个本类对象
3.提供一个方法可以获取本类对象
/**
名称:饿汉式
特点:先初始化对象,Single类一进内存,就已经创建好了对象。
*/ class Single
{
private Single(){};
private static Single s=new Single();
public static Single getIntance()
{
return s;
}
} /**
名称:懒汉式
特点:对象是方法被调用是,才初始化。也叫对象的延时加载。
Single类进入内存,对象还没有存在,只有调用getIntance方法时,才建立对象
*/ class Single
{
private Single(){};
private static Single s=null;
public static Single getIntance()
{
if (s==null)
{
s=new Single();
}
return s;
}
}
/****************************************************************/ class SingleDemo
{
public static void main(String[] args)
{
Single ss=Single.getIntance();
}
}
在程序编程中,推荐饿汉式,因为其他程序使用时,对象已经存在。懒汉式存在一个问题,当同时调用getIntance方法时,可能会实例化多个对象。
【java】设计模式-单例设计模式的更多相关文章
- java的单例设计模式
java的单例设计模式包括:饿汉设计模式和懒汉设计模式: 步骤: 1.创建一个对象把他设置为私有的成员变量,保证唯一 2.私有构造方法,防止new一个对象. 3.定义一个公开的静态方法,返回第一步创建 ...
- 【Java】单例设计模式
文章目录 单例设计模式 什么是设计模式 单例设计模式 实现 饿汉式 懒汉式 饿汉式与懒汉式的区别 饿汉式 懒汉式 单例模式的应用场景 单例设计模式 什么是设计模式 设计模式是在大量的实践中总结和理论化 ...
- Java中如果把构造方法也私有化,如何创建对象?Java的单例设计模式——饿汉式和懒汉式区别
Java的单例模式——饿汉式 package com.swift; //Java单例设计模式——恶汉式 public class SinglePerson { private String name= ...
- java软件设计模式——单例设计模式中的【饿汉式】与 【懒汉式】示例
以下为单例设计模式中的两种经典模式的代码示意: 单例设计模式(spring框架IOC,默认创建的对象都是单例的): 饿汉式: public class SingleClass { private Si ...
- 【设计模式】Java之单例设计模式
1.单例设计模式:一个类只能有一个对象 1.1 创建单例类的步骤: 1.将构造方法私有化 2.创建私有的静态成员变量 3.共有的静态成员方法,提供当前的唯一对象 1.1 创建单例的两种方式: 1.饿汉 ...
- Java 之单例设计模式
设计模式: 对问题行之有效的解决方式, 其实它是一种思想. 单例设计模式 解决的问题:就是可以保证一个类在内存中的对象唯一性. 即单个实例. 比如对于A 和 B 两个程序使用同一个配置信息对象时, A ...
- java设计模式——单例设计模式
/*设计模式:对问题行之有效的解决方式.其实它是一种思想. 1,单例设计模式. 解决的问题:就是可以保证一个类在内存中的对象唯一性. 必须对于多个程序使用同一个配置信息对象时,就需要保证该对象的 ...
- Java设计模式—单例设计模式(Singleton Pattern)全然解析
转载请注明出处:http://blog.csdn.net/dmk877/article/details/50311791 相信大家都知道设计模式,听的最多的也应该是单例设计模式,这种模式也是在开发中用 ...
- java singleton(单例设计模式)
单例设计模式的主要作用是: 1.控制资源的使用,我们对资源使用线程同步来实现并发访问. 2.节约资源,我们对一个类只进行一个实例化进行全局的资源访问,节约了内存. 3.作为通信媒介,也是数据共享,可以 ...
随机推荐
- Ubuntu 停止 mydesktop 服务
systemctl list-unit-files | grep mydesktop systemctl disable mydesktop.service
- Jellyfish详解
一.Jellyfish简介 JELLYFISH是CBCB(Center for Bioinformatics and Computational Biology)的Guillaume Marçais ...
- 关于Djanggo的环境变量
templates是Django指定的T目录,pycharm下templates的图标会变亮,static则可以改动.下面STATIC_URL可以指定,STATICFILES_DIRS则指定了temp ...
- 联盟链初识以及Fabric环境搭建流程
这篇文章首先简单介绍了联盟链是什么,再详细的介绍了Fabric环境搭建的整个流程. 区块链分类: 以参与方式分类,区块链可以分为:公有链.联盟链和私有链. 定义: 我们知道区块链就是一个分布式的,去中 ...
- DP爬台阶问题
1. 初级爬台阶 - 求最短步数 LC - 70 一次可以迈1-2个台阶,因此最短步数与前两个台阶有关. Initial state: 第一阶:1步 : 第二阶:1步 deduction functi ...
- 主机连接虚拟机的mysql 记录
检查远程的虚拟机是否可以ping通过 查看虚拟机IP为192.168.38.128 cmd窗口ping 192.168.38.128,出现如下界面说明是可以的 检查虚拟机mysql的端口号是否对外开通 ...
- SVN 常见报错
1.svn is out of date 出错原因:SVN服务器端的版本比你的版本要新,不允许提交. 解决方案1:右键你所要提交的文件,team-->update 更新最新版本 然后再提 ...
- nisght heap increase
sudo gedit /usr/local/cuda-5.5/libnsight/nsight.ini --launcher.defaultActionopenFile-vm../jre/bin/ja ...
- LoadLibrary和GetModuleHandle
0x01 区别 LoadLibrary是把一个模块映射进调用进程的地址空间,需要时增加引用计数,每调用一次,引用计数增加一,需要通过相同步骤地调用FreeLibrary来减少引用次数,当为0时,系统 ...
- python笔记8-列表list操作、多维数组
#!/usr/bin/python #python里面有个这个话,代表在linux下运行的时候#去哪个目录下找python的解释器,在windows上运行不用写# coding:utf-8# __*_ ...