单例模式(Singleton Pattern)实现的方法

电子说

1.3w人已加入

描述

单例模式是指某个类只允许存在一个实例对象,例如在打印机打印文件时,一次只允许打印一个文件;一个程序里的相同弹出对话框只允许有一个。

单例模式通常在需要控制对象数量以节省资源消耗的情况,在实际软件设计中非常常用,特别是在多线程多进程时,可以避免产生多个实例对象,造成资源浪费。

实现的方法是在类里创建一个private构造函数,这样其他类就无法通过new的方式生成其实例,只能通过类内部所定义的getInstance()方法生成实例,具有私有的构造函数是单例模式的一个显著特征。单例模式的一个简单示例类图如下图所示:

编译器

SingleInstance类的代码如下:

package singleton;
public class SingleInstance {
  //创建类时创建一个实例
  private static SingleInstance singleInstance=new SingleInstance();
  //私有构造函数
  private SingleInstance() {};
  //生成单实例
  public static SingleInstance getSingleInstance() {
    return singleInstance;
  }
  public void showMessage() {
    System.out.println("单例模式信息!");
  }
}

调用SingleInstance生成对象的错误方法:用new方法生成对象时,编译器会报错。

编译器

调用SingleInstance生成对象的正确方法:

public class SingletonPattern {
  public static void main(String[] args) {
    SingleInstance singleInstance = SingleInstance.getSingleInstance();
    singleInstance.showMessage();
    /*错误的调用方法
    SingleInstance singleInstance = new SingleInstance();
    */
  }
}
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分