zoukankan      html  css  js  c++  java
  • 单例

    单例设计模式,就是保证对象的实例只有一个,防止每个用这个对象的人都创建一个实例。

    私有化构造方法

    提供对象返回方法,用static修饰

    对象创建语句要是在外面,需要用 static final限定词

    1、饿汉:类加载时就先把对象实例准备好。

    public class SingleTon {
    
        private SingleTon(){}
    
        private static final Peopel peopel=new Peopel();
    
        public static Peopel getInstance(){
            return peopel;
        }
    
    }

    2、懒汉:什么时候要对象,什么时候再去创建。但是要记得加判断,即,实例为空的时候才去创建,不为空就返回,不加判断就是多例了。

    public class SingleTon {
    
        private static People people;

    private SingleTon(){} public static People getInstance(){ if(peopel==null){ people=new People(); } return people; } }

    3、多线程下的单例:线程安全

    public class SingleTon {
    
        private volatile static People people;
        private SingleTon(){}
    
        public static People getInstance(){
            if(peopel==null) {
                //孩子没产生,大家进去排队,抢着造人
                synchronized (People.class) {
                    if (peopel == null) {
                        people = new People();
                    }
                }
            }
            //孩子产生了那就不用都排队了,就去要孩子就好了
            return people;
        }
    
    }
    public class Singleton {
    
        private volatile static Singleton uniqueInstance;
    
        private Singleton() {
        }
    
        public static Singleton getUniqueInstance() {
           //先判断对象是否已经实例过,没有实例化过才进入加锁代码
            if (uniqueInstance == null) {
                //类对象加锁
                synchronized (Singleton.class) {
                    if (uniqueInstance == null) {
                        uniqueInstance = new Singleton();
                    }
                }
            }
            return uniqueInstance;
        }
    }
  • 相关阅读:
    IT资产管理系统SQL版
    反转单词(C#实现)
    删除数组中重复的元素(C#实现)
    最大子数组之和(C#实现)
    判断是否是三角形
    如何解决SSAS + SSRS + WSS3.0 之间的Windows 集成验证问题
    关于SharpDevelop
    规划一个SharePoint的解决方案
    Scalability Design
    合作意味着分享
  • 原文地址:https://www.cnblogs.com/guoyu1/p/12000584.html
Copyright © 2011-2022 走看看