java 23种设计模式 04 单例模式
来源:互联网 发布:ubuntu安装qt开发环境 编辑:程序博客网 时间:2024/06/05 15:31
java 23种设计模式 04 单例模式
一、什么是单例模式
单例模式是一种对象创建型模式,使用单例模式,可以保证为一个类只生成唯一的实例对象。也就是说,在整个程序空间中,该类只存在一个实例对象。其实,GoF对单例模式的定义是:保证一个类、只有一个实例存在,同时提供能对该实例加以访
问的全局访问方法。
二、为什么要使用单例模式呢?
在应用系统开发中,我们常常有以下需求:- 在多个线程之间,比如servlet环境,共享同一个资源或者操作同一个对象
- 在整个程序空间使用全局变量,共享资源
- 大规模系统中,为了性能的考虑,需要节省对象的创建时间等等。
因为Singleton模式可以保证为一个类只生成唯一的实例对象,所以这些情况,Singleton模式就派上用场了。
三、单例模式实现
1.饿汉式。2.懒汉式。
3.双重检查。
别人写的博客单例模式
代码下载:链接: 百度云下载地址密码:snis
代码:
public class MainClass {public static void main(String[] args) {Person2 per = Person2.getPerson();Person2 per2 = Person2.getPerson();per.setName("zhangsan");per2.setName("lisi");System.out.println(per.getName());System.out.println(per2.getName());}}public class Person {public static final Person person = new Person();private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}//构造函数私有化private Person() {}//提供一个全局的静态方法public static Person getPerson() {return person;}}public class Person2 {private String name;private static Person2 person;public String getName() {return name;}public void setName(String name) {this.name = name;}//构造函数私有化private Person2() {}//提供一个全局的静态方法public static Person2 getPerson() {if(person == null) {person = new Person2();}return person;}}//2.懒汉式。public class Person3 {private String name;private static Person3 person;public String getName() {return name;}public void setName(String name) {this.name = name;}//构造函数私有化private Person3() {}//提供一个全局的静态方法,使用同步方法public static synchronized Person3 getPerson() {if(person == null) {person = new Person3();}return person;}}//3.双重检查。public class Person4 {private String name;private static Person4 person;public String getName() {return name;}public void setName(String name) {this.name = name;}//构造函数私有化private Person4() {}//提供一个全局的静态方法public static Person4 getPerson() {if(person == null) {synchronized (Person4.class) {if(person == null) {person = new Person4();}}}return person;}}
阅读全文
1 0
- java 23种设计模式 04 单例模式
- java 23种设计模式之单例模式
- JAVA的23种设计模式---单例模式
- 23种Java设计模式_单例模式_1
- Java 23种设计模式之单例模式
- JAVA中23种设计模式之单例模式
- java 设计模式,单例设计模式
- java设计模式-单例设计模式
- java设计模式-单例设计模式
- Java设计模式 单例设计模式
- Java设计模式------单例设计模式
- java设计模式----->单例设计模式
- java设计模式:单例设计模式
- java设计模式-----单例设计模式
- Java设计模式----单例设计模式
- java设计模式-单例设计模式
- java设计模式:单例设计模式
- java 设计模式-单例设计模式
- 在Unity3D中使用泛型(下)
- iOS程序进入后台后仍运行定时器NSTimer
- 生成树协议
- 文章标题
- Codeforces Round #400 (Div. 1 + Div. 2, combined) 776B Sherlock and his girlfriend
- java 23种设计模式 04 单例模式
- 根据ip查看数据库连接数
- MiniGui开发问题锦集
- JZOJsenior5473.【NOIP2017提高组】day1T1小凯的疑惑
- php
- SVN提交响应很慢的一个解决思路
- 回溯法:最小重量机器设计问题(python解决)
- 波士顿动力人形机器人会后空翻了
- flume配置详解