设计模式学习笔记之——单例模式

单例模式(Singleton Pattern)涉及到一个单一的类,该类负责创建属于自己的对象,并且确保只有一个对象被创建,这种类提供了一种访问其唯一对象的方式,可以直接访问,无需实例化。

介绍

现在的操作系统都为多进程多线程的,如windows系统,在多个线程操作文件时就必须确保所有的文件操作都对应唯一的实例来进行;一些设备管理器经常被设计为单例,如多台打印机同时工作,需满足不能打印同一个文件。
Singleton Pattern主要解决一个全局变量频繁的被创建和销毁。

使用场景

  • web计数器,每次加数不用保存到数据库,可以先用单例缓存起来
  • 创建的一个对象需要消耗的资源过多,比如I/O,数据库连接等

步骤一:创建一个Singleton类 SingletonObject.java

   public class SingletonObject{
     private static SingletonObject instance=new SingletonObject();
      //私有化构造函数,防止该类被实例化
     private SingletonObject(){}
     public SingletonObject getInstance(){
            return instance;   
    }
     public void show() {
    System.out.println("this is single object");
}

步骤二:从SingletonObject类获取唯一的实例

   public  class SingletonPatternDemo{
    public static void main(String[] args) {
    //不合法的构造函数
    // SingleObject instance1 = new SingleObject();
    //获取唯一可用的实例对象
    SingleObject instance = SingleObject.getInstance();
    instance.show();
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 本文主要参考 那些年,我们一起写过的“单例模式”。 何为单例模式? 顾名思义,单例模式就是保证一个类仅有一个...
    tandeneck阅读 2,546评论 1 8
  • 单例模式(SingletonPattern)一般被认为是最简单、最易理解的设计模式,也因为它的简洁易懂,是项目中最...
    成热了阅读 4,318评论 4 34
  • 1 场景问题# 1.1 读取配置文件的内容## 考虑这样一个应用,读取配置文件的内容。 很多应用项目,都有与应用相...
    七寸知架构阅读 6,903评论 12 68
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,242评论 19 139
  • 一.什么是单例模式 单例模式的定义:确保一个类只有一个实例,并提供一个访问他的全局访问点。单例模式是几个设计模式中...
    Geeks_Liu阅读 2,255评论 0 10