/*单例模式意味着一个类只能实现一个对象,可以避免某些功能冲突,也可以节省内存,因为限制了对象的创建 */ class Unique { private Unique(){} //把构造函数设置为私有,确保类的外部不能实例化该类 static Unique unique = null; //为了避免线程不安全,可以把null改为new Unique(),在类刚加载的时候就实例化一个对象,在下面方法直接返回即可 public static Unique createUniObj() //这种方法不是线程安全的,给该方法加入synchronized关键字强制同步,每个线程进入该方法都要等其他线程离开,后果是降低性能 { if(unique == null) { unique = new Unique(); return unique; } else { return unique; } } public void prinf() { System.out.println("it works"); } } public class UniqueObj { public static void main(String[] args) { Unique unique1 = Unique.createUniObj(); //尝试创建一个单例对象 unique1.prinf(); //测试对象是否创建成功 Unique unique2 = Unique.createUniObj(); //再次尝试创建一个对象 if(unique1.equals(unique2)) //比较两次创建的对象是否相等 { System.out.println("it works too"); //相等则成功 } } }
设计模式之单例模式:singleton
猜你喜欢
转载自blog.csdn.net/m0_37907835/article/details/79683079
今日推荐
周排行