写一个单例模式

单例模式是一种常用的软件设计模式。

在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。

这里我们将写一个标准的Java单例模式。

如何写一个标准的Java单例模式

工具/原料

  • 一台再正常不过的已经配置了java环境的电脑

标准的Java单例模式

  1. 1

    打开eclipse或任意可以编译并运行的IDE程序,准备我们的练习:

    我创建好工程名和包名,并命名这个功能类为:SingletonDemo

    如何写一个标准的Java单例模式
  2. 2

    既然是单例模式,就不可以让外部随便创建ta的实例,因此,ta的空构造器必须是私有的,如图:

    如何写一个标准的Java单例模式
  3. 3

    话说回来,既然是单例模式,那么类中已有一个实例,而且是只有这么一个实例,那么,这个实例就一定是final的了。如图:

    如何写一个标准的Java单例模式
  4. 4

    既然是单例类,就必须对外提供且仅提供一个实例。

    那么,就得有提供的方式,这里,用getInstance来提供单例实例。

    如何写一个标准的Java单例模式
  5. 5

    如果已有实例呢?所以这个方法得改进一下:

    如何写一个标准的Java单例模式
  6. 6

    如果是在多线程环境下呢?加一个synchronized就好了。

    如图:看到了吗?

    [^~^]   Done.

    如何写一个标准的Java单例模式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值