单例模式的实现(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
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.单例模式概述 (1)引言 单例模式是应用最广的模式之一,也是23种设计模式中最基本的一个。本文旨在总结通过Ja...
    曹丰斌阅读 8,103评论 6 47
  • 在Java中,单例模式分为很多种,本人所了解的单例模式有以下几种,如有不全还请大家留言指点: 饿汉式 懒汉式/Do...
    Duang了个Duang阅读 5,656评论 0 2
  • 微信原文:设计模式 | 单例模式及典型应用 单例是最常见的设计模式之一,实现的方式非常多,同时需要注意的问题也非常...
    小旋锋的简书阅读 5,747评论 2 5
  • 单例模式定义 确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例 单例模式使用场景 确保某个类有且只...
    wuchao226阅读 4,662评论 0 0
  • 各位爱学习,爱演讲的伙伴们,大家早上好,接下来我给大家介绍一下聪明达演讲,相信你听完一定会认为,想学演讲,聪明达演...
    乐乐0068阅读 1,351评论 0 0

友情链接更多精彩内容