單例模式的實現(java 和 Python)

沒有那么多的廢話直接上代碼
java 使用enum 實現單例模式,該種方法要求jd>=1.5的版本

public interface Country{
          .................
}
public class China implements Country{
          .................
/**
*
*獲取單例對象
*/
public static Country getInstance(){
        return China.Singleton.INSTANCE.getInstance();
} 

private enum Singleton{
        INSTANCE;

        private China singleton;

        //JVM會保證此方法絕對只調用一次
        Singleton(){
            singleton = new China ();
        }
        public China getInstance(){
            return singleton;
        }
    }
}

java 使用餓漢模式實現單例模式

public class China{  
    private static China instance = new China();  
    private China(){}  
    public static Singleton getInstance() {  
    return instance;  
    }  
}

python 實現單例模式

# -*- coding: utf-8 -*-
# python  從模塊引入就是實現了單例模式
# 通過鎖實現 主要是在初始化方法中有I/O操作就可能造成單例模式的失敗

import threading


class Singleton(object):
    _instance_lock = threading.Lock()

    def __init__(self):
        pass

    def __new__(cls, *args, **kwargs):
        if not hasattr(Singleton, "_instance"):
            with Singleton._instance_lock:
                Singleton._instance = object.__new__(cls)
        return Singleton._instance
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 1.單例模式概述 (1)引言 單例模式是應用最廣的模式之一,也是23種設計模式中最基本的一個。本文旨在總結通過Ja...
    曹豐斌閱讀 3,078評論 6 47
  • 在Java中,單例模式分為很多種,本人所了解的單例模式有以下幾種,如有不全還請大家留言指點: 餓漢式 懶漢式/Do...
    Duang了個Duang閱讀 1,955評論 0 2
  • 微信原文:設計模式 | 單例模式及典型應用 單例是最常見的設計模式之一,實現的方式非常多,同時需要注意的問題也非常...
    小旋鋒的簡書閱讀 1,865評論 2 5
  • 單例模式定義 確保某一個類只有一個實例,而且自行實例化并向整個系統提供這個實例 單例模式使用場景 確保某個類有且只...
    wuchao226閱讀 1,090評論 0 0
  • 各位愛學習,愛演講的伙伴們,大家早上好,接下來我給大家介紹一下聰明達演講,相信你聽完一定會認為,想學演講,聰明達演...
    樂樂0068閱讀 179評論 0 0

友情鏈接更多精彩內容