单例设计模式

**

看了这篇文章,保你学会单例(Singleton)设计模式

**


设计模式概述

设计模式是一套被反复使用的、经过验证的、能够提高软件开发效率的解决问题的经验总结。设计模式主要是针对软件开发过程中常见的一些问题,通过提供通用的解决思路和方法,帮助软件开发人员更加高效地完成软件设计任务。

一般来说,设计模式主要包括三类设计模式,即创建型模式、结构型模式和行为型模式。创建型模式关注对象的创建机制,包括单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式等。结构型模式关注对象与对象之间的协作,包括适配器模式、桥接模式、装饰者模式、外观模式、享元模式、组合模式等。行为型模式关注对象的行为,包括观察者模式、命令模式、迭代器模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式和模板方法模式等。

通过使用设计模式,我们可以在软件开发中快速解决常见的问题,提高代码的可读性、可维护性和可扩展性,使得软件开发过程更加高效、灵活和可靠。

一、什么是单例模式?

所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。

二、实现思路

如果我们要让类在一个虚拟机中只产生一个对象,我们首先必须将类的构造器的访问权限设置为private,这样,就不能用new操作符在类的外部产生类的对象了,但是在类的内部仍可以产生类的对象。因为在类的外部开始无法得到类的对象,只能调用该类的某个静态方法以返回类内部创建的对象,静态方法只能访问类中的静态成员变量,所以指向类内部产生的该类对象的变量也必须定义成静态的。

三、单例模式的两种实现方式

1. 饿汉式

class Bank{
//1.类的构造器私有化
private Bank(){

}
//2.在类的内部创建当前类的实例
//4.此属性也必须声明为static的
private static Bank instance=new bank();
//3.使用getXxx()方法获取当前类的实例,必须声明为static的
public static Bank getInstance(){
     retuen instance;
}
}

2. 懒汉式

class GirlFriend{
//1.类的构造器私有化
  private GirlFriend(){

}
//2.在类的内部创建当前类的实例
//4.此属性也必须声明为static的
private static GirlFriend instance=null;
//3.使用getXxx()方法获取当前类的实例,如果未创建对象,则方法内部进行创建
public static GirlFriend getInstance(){
      if(instance==null)
      {
      instance=new GirlFriend();
      }
      return instance;
}
}

四、总结(两种模式的特点和优缺点)

1. 特点:
饿汉式: “立即加载”,随着类的加载,当前唯一实例就创建了。
懒汉式: “延迟加载”,在需要的时候,进行创建对象。
2. 优缺点:
饿汉式:(优点)写法简单,由于内存中较早加载,使用更方便、更快。是线程安全的。(缺点)内存中占用时间较长。
懒汉式:(优点)在需要的时候进行创建,节省空间。(缺点)线程不安全。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值