• GoF23种设计模式之创建型模式之单态模式


    1概述

            保证一个类仅有一个实例,并提供一个访问它的全局访问点。

    2适用性

    1.当类只能有一个实例而且客户可以从一个总所周知的访问点访问它的时候。

    2.当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例的时候。

    3参与者

    Singleton:定义一个Instance操作,允许客户访问它的唯一实例。Instance是一个类的操作,可能复杂创建它自己的唯一实例。

    4类图

    5示例

    Singleton

    [java] view plain copy
     
     print?
    1. package cn.lynn.singleton;  
    2.   
    3. public class Singleton {  
    4.   
    5.     private static Singleton instance;  
    6.   
    7.     private Singleton() {  
    8.     }  
    9.   
    10.     public static Singleton getInstance() {  
    11.         if (instance == null) {  
    12.             instance = new Singleton();  
    13.         }  
    14.         return instance;  
    15.     }  
    16.   
    17. }  

    Test

    [java] view plain copy
     
     print?
    1. package cn.lynn.singleton;  
    2.   
    3. public class Test {  
    4.   
    5.     public static void main(String[] args) {  
    6.         Singleton instance1 = Singleton.getInstance();  
    7.         Singleton instance2 = Singleton.getInstance();  
    8.   
    9.         System.out.println(instance1);  
    10.         System.out.println(instance2);  
    11.         System.out.println(instance1 == instance2);  
    12.     }  
    13.   
    14. }  

    Result

    [java] view plain copy
     
     print?
      1. cn.lynn.singleton.Singleton@175d6ab  
      2. cn.lynn.singleton.Singleton@175d6ab  
      3. true  
  • 相关阅读:
    BestCoder Round #65 hdu5590(水题)
    codeforces Ebony and Ivory(水题)
    codeforces 630B Moore's Law
    BestCoder Round #69 (div.2)(hdu5611)
    BestCoder Round #73 (div.2)(hdu 5630)
    codeforces 630A Again Twenty Five!
    codeforces 630C Lucky Numbers
    codeforces 630D Hexagons!
    Codeforces243C-Colorado Potato Beetle(离散化+bfs)
    hdu4453-Looploop(伸展树)
  • 原文地址:https://www.cnblogs.com/huangwentian/p/7471563.html
Copyright © 2020-2023  润新知