Java-单例模式-学习实例

来源:互联网 发布:雅可比矩阵的逆矩阵 编辑:程序博客网 时间:2024/05/16 11:06
package Java_设计模式;//在整个系统软件中只创建一个实例对象public class 单例模式_饿汉式模型 {public static void main(String[] args) {//测试单例模式的引用是否一致Singleton s1 = Singleton.getInstance();Singleton s2 = Singleton.getInstance();System.out.println(s1 == s2);//true}}//设计单例模式分为以下3步://1、私有化构造器,目的是类的外部不能调用此构造器。//2、在类的内部创建一个类的静态私有实例 instance。//3、获取类的实例的方法,此公共方法只能通过类来调用,设为static,同时类的实例也必须为static的。class Singleton{private Singleton(){}private static Singleton instance = new Singleton();//公共方法,获取类的实例对象public static Singleton getInstance(){return instance;}}

package Java_设计模式;//单例模式的懒汉式模式存在线程安全。public class 单例模式_懒汉式模型 {public static void main(String[] args) {//测试懒汉式模型Singleton1 s1 = Singleton1.getInstance();Singleton1 s2 = Singleton1.getInstance();System.out.println(s1 == s2);//true}}class Singleton1{//1、私有化构造器private Singleton1(){}//2、实例对象private static Singleton1 instance = null;//3、获取实例对象的公共方法,设为静态,用类来调用,而不是用对象public static Singleton1 getInstance(){//instance 第一次访问为空则需要创建对象if(instance == null){//---------线程容易出现安全问题的位置----------------instance = new Singleton1();}return instance;}}

0 0
原创粉丝点击