java设计模式~单例

设计模式可以使用我们在软件开发过程中更加灵活,软件的扩展更容易,软件的耦合度更低,设计模式不是在开发中刻意去用的,而是到了什么时候用什么模式的,不能强迫的使用它,应该是自然而然的想到它。

单例模式

在23种设计模式中,单例最为简单和纯粹,也是最容易理解的,即它在软件生命周期里,只有一个实例,就是说你初始化了一个对象之后,它就会一直存在,直到程序结束,在java语言里使用单例的方法有很多,像饿汉单例懒汉单例,在实现过程中前者是在程序启动时就会初始化,而后者是在第一次使用它时进行初始化。

代码实现

饿汉模式

/**
 * 饿汉单例.
 */
public class SingletonObj {
  private static SingletonObj instance = new SingletonObj();

  private SingletonObj() {
  }

  public static SingletonObj getInstance() {
    return instance;
  }
}

懒汉模式

/**
 * 饿汉模式.
 */
public class SingletonLazy {
  private SingletonLazy() {
  }

  public static final SingletonLazy getInstance() {
    return SingletonHolder.INSTANCE;
  }

  private static class SingletonHolder {
    private static final SingletonLazy INSTANCE = new SingletonLazy();
  }
}

posted @   张占岭  阅读(329)  评论(0编辑  收藏  举报
编辑推荐:
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
阅读排行:
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
历史上的今天:
2013-10-31 DDD~WCF做中间件,实现多个项目的缓存共享
2013-10-31 爱上MVC3~在控制器或Action上动态设定模板页(Layout)
2012-10-31 EF架构~为EF DbContext生成的实体添加注释(T4模板应用)
2011-10-31 DataContext数据在F5刷新频繁时,出现数据读取错误(MVC LINQ)
点击右上角即可分享
微信分享提示