Design Patterns -- Singleton

原创 2006年06月26日 10:32:00

1. The intent of the Singleton is to ensure that a class has only one instance and to provide a global point of access to it.

2. A singleton is usually lazy-initialized. [lazy-initialized is like:if( filed == null) { // initial }  return field; ]

3. Symchronize is important in lazy-initialize when initial Singleton (multi-thread).( see book: Concurrent Programming in Java )

4. See the source code of java.util.Collections.SingletonSet

5. UML diagram of Singleton,   see pic:

 

6. To use Singleton, approaches are below:

6.1 use static function to create instance(and make the constractor private so that other can not use it),like:

public class Singleton {
            private static Singleton s;
            private Singleton(){};
        
        // lazy-initialize         
        public static Singleton getInstance() {
         if (s == null)
            s = new Singleton();
          return s;
        }
}

6.2 Use static field to mark whether the single instance has been created, like:

class Singleton {
  static boolean instance_flag = false; // true if 1 instance
  public Singleton() {
    if (instance_flag)
      throw new SingletonException("Only one instance allowed"); //custom exception
    else
      instance_flag = true; // set flag for 1 instance
  }
}

6.3 use Collection: repeat object is not allowed in some collections, can be extended to a specified number of instance of a class.

Design Patterns: Singleton Basics 设计模式游戏中运用:单例基础

Design Patterns are among the bread and butter of the good developer's cookbook. Basically, any seri...
  • Finans
  • Finans
  • 2013年05月24日 14:23
  • 1174

设计模式(Design Patterns)

转载此http://www.cnblogs.com/maowang1991/archive/2013/04/15/3023236.html/ 设计模式(Design pattern)是一套被反复使用...

【分享】分享一本最新的HTML5和CSS书籍 《Pro HTML5 and CSS3 Design Patterns》

> 中文名 >。 >是一本关于怎样使用CSS3和HTML5设计网页的参考书籍和手册。它包含了350个可用的模式(CSS3和HTML5代码片段),这些模式你可以拷贝粘贴到你的代码中。 每一种...

MapReduce Design Patterns(2. 中位数、方差)(三)

http://blog.csdn.net/cuirong1986/article/details/8455335 Median and standard deviation 中值和标准差的计算...

Java基础学习总结(37)——Java23中设计模式(Design Patterns)详解

设计模式(Design Patterns)                                   ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使...

设计模式(Design Patterns)

设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于...

设计模式(Design Patterns)

原文链接:http://blog.csdn.net/zhangerqing 资源:http://download.csdn.net/detail/zhangerqing/4835830 设计模式...
  • cuijhon
  • cuijhon
  • 2016年05月13日 17:45
  • 539

MapReduce Design Patterns(3.过滤器、布隆过滤器)(五)

http://blog.csdn.net/cuirong1986/article/details/8465630 Chapter 3. Filtering Patterns 本章的模式...

JAVA设计模式(一)(Design Patterns)

设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于...

设计模式(Design Patterns)

设计模式(Design Patterns)                                   ——可复用面向对象软件的基础 设计模式(Design pattern)是一套...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Design Patterns -- Singleton
举报原因:
原因补充:

(最多只允许输入30个字)