单例模式

  在软件设计中,有时确实存在一个类仅能用来产生一个唯一对象的必要性。例如在Windows系统中,

应该只有一个文件系统与一个文件视图管理系统(Window Manager)。

  有两种方法可以确保一个类只有一个实例。

  1、程序员在应用程序中使用代码保证仅有一个实例被创建。

  2、不依靠应用程序员,精心设计仅有一个实例的类,由该类本身的结构确保其仅能够被创建一个实例。

  这就是单例模式

单例模式指的是确保一个类仅有一个唯一的实例,并且提供一个全局的访问点。

单例模式是将一个需要生成唯一对象的类设计成单例类,从而使得调用者仅仅能获得唯一的实例。

实现单例模式关键在三点:

  1、设置构造方法私有,避免客户程序利用该构造方法创建不同的对象。

  2、提供一个静态变量存放类的唯一实例。

  3、提供一个获得实例的方法,静态方法。

 注意:

  如果涉及到多线程,可以使用Java语言中的同步(Synchronized)机制,将方法getInstance()置于同步机制的保护下。

单例模式实现案例(单线程):

public class President{
    private static President instance;
    private String name;
    private President(String name){
        this.name = name;
    }
    
    public static President getInstatnce(String name){
        if(instance==null&&!name.equals(null)){
            instance = new President("张三");
        }
        return instance;
    }
}

单例模式详细分析参考:

https://blog.csdn.net/jason0539/article/details/23297037/

posted @ 2018-05-31 20:11  listener_lei  阅读(164)  评论(0编辑  收藏  举报