码迷,mamicode.com
首页 > 编程语言 > 详细

java设计模式之单例模式随笔

时间:2014-09-11 23:39:42      阅读:248      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   使用   java   ar   art   

Java模式之单例模式:

  凡是看单例模式,都会看到两种经典的结构:

  1. 饿汉式
1 public class EagerSingle {
2    private static EagerSingle instance = new EagerSingle();  
3    public static EagerSingle getInstance() {
4      return instance;  
5     }   
6 }

  之所以称为饿汉式,是因为在类被加载的时候,静态变量 instance 会直接被初始化。

 2. 懒汉式

bubuko.com,布布扣
 1 public class LazyStringlet {
 2      private static LazySingle instance = null;   
 3      /**
 4         * 静态工厂方法
 5         */   
 6     publice static synchronized LazySingle getInstance() {
 7          if(instance == null) {
 8          instance = new LazySingle();   
 9        }   
10         return instance;
11     }
12 }    
View Code

  懒汉式其实是一种比较形象的称谓。既然懒,那么在创建对象实例的时候就不着急。会一直等到马上要使用对象实例的时候才会创建,懒人嘛,总是推脱不开的时候才会真正去执行工作,因此在装载对象的时候不创建对象实例。(摘自http://www.2cto.com/kf/201204/125917.html)

 3.两种的区别与优点:

  饿汉,由于类被加载的时候就创建实例,所以它相对会减少运行时间;

  懒汉式,由于对获取实例的 getInstance()方法加 synchroized(锁) 所以它是线程安全的,所以在执行多个线程的时候,它会一个个执行,所以在运行速度上回相对慢;相反,也正因为这样每当线程进入的时候才会创建实例,所以会节省空间。

 

  个人理解:(暂时)单例模式,只有在多线程下有意义,在顺序结构的程序中并没有多大意义。目前工作接触多线程的机会不多,所以这方面理解不太深。

java设计模式之单例模式随笔

标签:style   blog   http   color   os   使用   java   ar   art   

原文地址:http://www.cnblogs.com/fogInformation/p/demaxiyaxuejava.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!