📙
Design Pattern
  • Introduction
  • 0. About Design Pattern
  • 1. Singleton
  • 1.1 Eager Singleton (a.k.a Pessimistic Lock Singleton)
  • 1.2 Lazy Singleton (a.k.a Optimistic Lock Singleton)
  • 1.3 理解Singleton
  • 1.4 Cache Singleton
  • 1.5 Extend Singleton
  • 1.6 Double Check and Lock Singleton
  • 1.7 Lazy Initialization Holder Class
  • 1.8 Enum Singleton
  • 1.9 Conclusion
  • 2. Factory
  • 2.1 Simple Factory
  • 2.2 Factory
  • 2.3 Abstract Factory
  • 2.4 Conclusion
Powered by GitBook
On this page

Was this helpful?

1.4 Cache Singleton

這邊我就做了一個簡單的快取單例, 直接用程式說明:

package idv.design.pattern.singleton.cache;

import java.util.HashMap;
import java.util.Map;

/**
 * @author Carl Lu
 */
public class Singleton {

    private static final String DEFAULT_KEY = "One";

    private static Map<String, Singleton> map = new HashMap<String, Singleton>();

    private Singleton() {

    }

    public static Singleton getInstance() {
        Singleton instance = (Singleton)map.get(DEFAULT_KEY);
        if(instance == null) {
            instance = new Singleton();
            map.put(DEFAULT_KEY, instance);
        }
        return instance;
    }

}

好吧, 我想這個例子有點雞肋, 但這是為了後面鋪梗.

Previous1.3 理解SingletonNext1.5 Extend Singleton

Last updated 5 years ago

Was this helpful?

原始碼

點我