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
  • 1128

设计模式(Design Patterns)

设计模式(Design Patterns)                      &...

Java Design Patterns Abstract Factory

Abstract Factory OverviewAn abstract factory has sets of methods to make families of various objects...

设计模式-Design Patterns

今天开始读设计模式-可复用面向对象软件的基础(Design Patterns-elements of reusable Object-Oriented Software) 这本书第一次的提出设计模式...

设计模式(Design Patterns)

——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保...

《Head First Design Patterns》读书笔记之迭代器模式

迭代器模式:提供一种方法顺序的访问

java设计模式(Design Patterns)

设计模式(Design Patterns)                      &#...

Design Patterns---- Strategy 模式

设计模式:可复用面向对象软件的基础 书中对 Strategy 模式的定义如下: 定义了一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于它的用户而变化。 案例:设计一...

Design patterns 设计模式

Christopher Alexander 说过:“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动”。 模式描述为:...

<<C++ design patterns and Derivatives Pricing>> 学习系列 CH1-对蒙特卡洛基本理解

前面的推导省略,该公式为期权定价公式   参数解释: r:riskless 利率 ==r T:期限 ==Expire S0:起始spot price ==Spot :Vol ==Vol K:s...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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