Java设计模式之—单例模式

单例模式

单例模式,是一种常用的软件设计模式,Java设计模式之一。
在它的核心结构中只包含一个被称为单例的特殊类。
通过单例模式可以保证系统中,应用该模式的一个类只有一个实例。即一个类只有一个对象实例

具体实现
  • 饿汉模式
public class Person {
    /**属性:private、static修饰,类型为当前类类型,且立即初始化 */
    private static Person person = new Person();
    
    /**
     * 构造方法必须私有
     */
    private Person() {
        System.out.println(" 这里是饿汉式的私有构造方法!");
    }
    
    /**
     * public、通过get当前类的对象
     * @return
     */
    public static Person getPerson() {
        return person;
    }
}

//测试类
class TestPerson {
    public static void main(String[] args) {
        //static方法,直接通过类调用进行对象初始化
        Person person1 = Person.getPerson();
        Person person2 = Person.getPerson();
        
        //属于同一个对象
        System.out.println(person1 == person2);
    }
  • 懒汉(饱汉)模式
public class Student {
    /**属性:private、static修饰,类型为当前类类型,不先初始化,只先声明 */
    private static Student student;

    /**
     * 构造方法必须私有
     */
    private  Student() {
        System.out.println("这里是懒汉模式的私有构造方法!");
    }
    
     /**
     * public、通过get当前类的对象(首次使用需要实例化)
     * @return student
     */
    public static Student getStudentInstence() {
        if(student == null)
            student = new Student();
        return student;
    }  
}

//测试类
class TestStudent {
    public static void main(String[] args) {
   		//static方法,直接通过类调用进行对象初始化
        Student stu1 = Student.getStudentInstence();
        Student stu2 = Student.getStudentInstence();
        
        //属于同一个对象
        System.out.println(stu1 == stu2);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值