设计模式之单例模式

来源:互联网 发布:苹果cms模板怎么用 编辑:程序博客网 时间:2024/06/13 18:42
package cn.edu.singleton;public class 单例模式 {public static void main(String[] args) {Box info1 = Box.getInfo();Box info2 = Box.getInfo();System.out.println(info1 == info2); //测试是否同一个实例  trueDog dog1 = Dog.getInfo();Dog dog2 = Dog.getInfo();System.out.println(dog1 == dog2);//测试是否同一个实例  true}}

单例模式有以下特点:  1,在某个类中只存在一个对象实例   2,单例类必须自己创建自己的唯一实例。  3,单例类必须给所有其他对象提供这一实例。

//饿汉式
class Box{//1,私有化构造器private Box(){};//2,指向自己实例的静态私有引用private static Box box = new Box();//3,以自己实例为返回值的静态公有方法(暴漏给其他对象使用)public static Box getInfo(){return box;}}

//懒汉式
class Dog{//1,私有化构造器private Dog(){};//2,指向自己实例的静态私有引用private static Dog dog = null;//3,以自己实例为返回值的静态公有方法(需考虑线程安全问题)public synchronized static Dog getInfo(){if (dog == null) {dog = new Dog();}return dog;}}



                                             
0 0
原创粉丝点击