黑马程序员-学习日记(单例设计模式的两种类型)

it2022-05-09  39

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

单例设计模式:解决一个类在内存中只有一个对象 多个程序使用统一配置信息对象时,需要保证该对对象的唯一性。 保证对象唯一性的实现步骤: 1.将构造函数私有化:为了避免其他程序过多建立该对象,禁止其他程序调用该对象。 2.在类中创建一个本类对象:为了让其他程序可以访问该类对象 3.提供一个方法可以获取到该对象的方法:方便其他程序访问自定义的本类对象。(类方法的访问方式只有两种,建立对象或定义为静态方法)饱汉式: public class testIO{ public static void main(String[] args){ Single s = Single.getInstance(); } } class Single { private Single(){}//私有化构造函数,使得无法随意创建对象 static Single s = new Single();//创建对象,由于被用于静态方法中,所以要加上static关键字 public static Single getInstance(){ return s; } }

 饿汉式:

class single2 { private single2(){} static single2 s2 = null; public static synchronized single2 getInstance(){ //2、而加了synchronized关键字后只能有一个线程进入执行,会导致效率低下 if (s2==null) //1、注意:多个线程调用时,若某一个线程停在这儿,另一个线程也能进入执行。会导致单例失败。 s2 = new single2(); return s2; } //3、这样做比较好 public static single2 getInstance2(){ if (s2 == null){ synchronized (Single.class) { if(s2==null) s2 = new single2(); } } return s2; } }

 

转载于:https://www.cnblogs.com/tozr/p/4126993.html


最新回复(0)