java设计模式之 单例模式 Singleton
static 的应用 单例模式 Singleton
单例:保证一个类在系统中最多只创建一个实例。
好处:由于过多创建对象实例,会产生过多的系统垃圾,需要GC频繁回收,由于GC会占用较大的系统资源,所有建议减少对象的创建,引出单例模式。能够明显地提供系统性能。
实现单例模式的步骤:
1) 构造方法私有(不允许外界直接new对象)
2) 提供公共静态方法获取单例(通过类名直接调用:类名.静态方法)
3) 提供一个私有静态的成员来保存单例
案例:“懒汉式”VS“饿汉式”实现单例模式,推荐使用后者
在day09.sta包下 创建TestSingleton1.java
在day09.sta包下 创建TestSingleton2.java
class LaoPo{
private static LaoPo lp = new LaoPo();
private LaoPo(){
}
public static LaoPo getInstance(){
return lp;
}
}
main:
LaoPo lp1 = new LaoPo();
LaoPo lp2 = new LaoPo();
System.out.println(lp1 == lp2); //true
结论:针对测试方面,必要时模拟出多个用户(多线程)同时并发访问程序,才能测试出问题。
java设计模式之 单例模式 Singleton的更多相关文章
- Java设计模式之单例模式 - Singleton
		用来创建独一无二的,是能有一个实例的对象的入场券.告诉你一个好消息,单例模式的类图可以说是所有模式的类图中最简单的,事实上,它的类图上只有一个类!但是,可不要兴奋过头,尽管从类设计的视角来说很简单,但 ... 
- Java 设计模式(三)-单例模式(Singleton Pattern)
		1 概念定义 1.1 定义 确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例. 1.2 类型 创建类模式 1.3 难点 1)多个虚拟机 当系统中的单例类被拷贝运行在多 ... 
- 设计模式之单例模式——Singleton
		设计模式之单例模式--Singleton 设计意图: 保证类仅有一个实例,并且可以供应用程序全局使用.为了保证这一点,就需要这个类自己创建自己的对象,并且对外有 ... 
- java 设计模式之单例模式
		-------Success is getting what you want, happiness is wanting what you get. java设计模式之单例模式(Singleton) ... 
- 设计模式(4) -- 单例模式(Singleton)
		设计模式(4) -- 单例模式(Singleton) 试想一个读取配置文件的需求,创建完读取类后通过New一个类的实例来读取配置文件的内容,在系统运行期间,系统中会存在很多个该类的实例对象,也就是说 ... 
- 折腾Java设计模式之单例模式
		博文原址:折腾Java设计模式之单例模式 单例模式 Ensure a class has only one instance, and provide a global point of access ... 
- Java设计模式之单例模式(七种写法)
		Java设计模式之单例模式(七种写法) 第一种,懒汉式,lazy初始化,线程不安全,多线程中无法工作: public class Singleton { private static Singleto ... 
- Java 设计模式之单例模式(一)
		原文地址:Java 设计模式之单例模式(一) 博客地址:http://www.extlight.com 一.背景 没有太多原由,纯粹是记录和总结自己从业以来经历和学习的点点滴滴. 本篇内容为 Java ... 
- java设计模式之单例模式你真的会了吗?(懒汉式篇)
		java设计模式之单例模式你真的会了吗?(懒汉式篇) 一.什么是单例模式? 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一.这种类型的设计模式属于创建型模式,它提供 ... 
随机推荐
- VS2012JSON自动生成对应的类
			一.复制JSON数据如图 {Key:"aaaa",Value:"bbbb"} 二.点击以下操作 
- java多线程的实现的两种方法
			通过继承Thread类实现 多线程- public class Hello{ public static void main(String args[]){ MyThread tr1 = new My ... 
- C++中内存分配详解
			转载自51CTO.com http://developer.51cto.com/art/201107/276154.htm 我们都知道,内存基本上分为静态存储区.堆区和栈区三大部分 ... 
- 关于google CDN 在中国访问不了的解决办法
			因原网站的script部分使用了google CDN,导致在中国看不了跟google相关的所有东西 解决方法: 得把google CDN 连接改成其他公司的CDN 例: 修改前:<script ... 
- js中继承的方法总结(apply,call,prototype)
			一,js中对象继承 js中有三种继承方式 1.js原型(prototype)实现继承 代码如下: <SPAN style="<SPAN style="FONT-SIZE ... 
- ACID:数据库事务正确执行的四个基本要素
			ACID,指数据库事务正确执行的四个基本要素的缩写.包含:原子性(Atomicity).一致性(Consistency).隔离性(Isolation).持久性(Durability).一个支持事务(T ... 
- C#获取Excel Sheet名称,对特殊字符、重名进行了处理
			/// <summary> /// 获取指定Excel内Sheet集合 /// </summary> /// <param na ... 
- _OBJC_CLASS_$_ errors 错误解决办法
			步骤如下图: 1. 点击 Manage Schemes 2. Shared打对勾即可 
- JAVA可变参数实例
			public class Kebiancanshu { public static void main(String[] args) { System.out.println(average(8, 2 ... 
- Delphi通过调用COM对象实现更改桌面壁纸
			从前我也是用SystemParametersInfo这API来改桌面壁纸的,问题多多,也不知道哪错了,就没深究下去.看了CSDN的帖子后,大彻大悟~~ 在XP下,SystemParam ... 
