美文网首页
单例模式的实现(java 和 Python)

单例模式的实现(java 和 Python)

作者: 梦云之巅 | 来源:发表于2019-10-17 17:50 被阅读0次

    没有那么多的废话直接上代码
    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
    

    相关文章

      网友评论

          本文标题:单例模式的实现(java 和 Python)

          本文链接:https://www.haomeiwen.com/subject/yblvmctx.html