Singleton 饿汉式
添加static 让他变为类所有,不再是对象方法,可以通过类名直接访问
public static Singleton getInstance(){}
Singleton s1=Singleton.getInstance();
单例模式 --- 饿汉模式
class Singleton { //1.将构造方法私有化,使外部无法直接创建对象 private Singleton() { } //2.创建类的唯一实例 private static Singleton instance = new Singleton(); //3.提供获取实例的方法 public static Singleton getInstance() { return instance; } }
特点:在加载类时实例化对象。(加载类较慢,但调用较快)
//单例模式:饿汉模式
public class Singleton{
//1、将构造方法私有化,不允许外部直接创建对象
private Singleton(){}
//2、创建类的唯一实例,使用private static修饰
private static Singleton instance=new Singleton();
//3、提供一个用于获取实例的方法
public static Singleton getInstace()
{
return instance;
}
}
public class Test{
public static void main(String[] args)
{
Singleton s1=Singleton.getInstance();
Singleton s2=Singleton.getInstance();
if(s1==s2)
{
System.out.println("s1和s2是同一个实例");
}else{
System.out.println("s1和s2不是同一个实例");
}
}
}
1、什么是设计模式:? 程序设计的套路,是一套被反复使用,多数人知晓的,经过分类编目的,代码设计经验的总结。 2、使用设计模式的目的? 使用设计模式是为了可重用代码、让代码更容易被他人理解,保证代码的可靠性。 3、常见的设计模式: 单例模式、抽象工厂模式、建造者模式、工厂模式、原型模式等 4、软件开发的目标 分析问题的能力 5、什么是单例模式: 整个项目中,有些对象只需要一个比如: 配置文件,工具类,线程池,缓存,日志对象等。 如果创造出多个实例会造成许多的问题, 比如占用过多的资源,不一致的结果等。 单例模式: 保证整个应用中某个实例有且只有一个。 6、原理: 1、私有化构造方法(使用private关键字修饰构造方法),不允许外部直接创建多个实例。 2、保证有一个实例(分为懒汉和饿汉两种实例化方法),在类内部创建一个私有的自己的实例,类的唯一实例。 3. 提供一个用于获取实例的方法 7、分类 饿汉模式:加载类时比较慢,但运行时获取对象的速度比较快;线程安全。 懒汉模式:加载类时比较快,但运行时获取对象的速度比较慢;线程不安全。
//单例模式 --- 饿汉模式 public class Singleton { //1.私有构造函数,不允许外部访问 private Singleton() { } //2.创建类的惟一实例,私有。 (类变量) private static Singleton instance = new Singleton(); //3.提供访问惟一实例的公共方法(类方法) public static Singleton getInstance(){ return instance; } } //单例模式 --- 懒汉模式 public class Singleton2 { //1.私有构造函数,不允许外部访问 private Singleton2() {} //2.创建类的惟一实例,私有。 (类变量) static private Singleton2 instance; //3.提供访问惟一实例的公共方法(类方法) public static Singleton2 getInstance(){ if(instance == null){ instance = new Singleton2(); } return instance; } }
14行代码何时被加载?
静态成员为类所有,当类被加载时,该行代码就会被加载执行,创建类的唯一实例无论用户是否调用和获取该实例,均已被加载执行了
饿汉模式如荼
完成以后第二行写一些注释,便于理解
指定包名Package : com.imooc
指定Name: Singleton
点击finish完成
新建一个java类
设计模式--单例模式
饿汉,类加载时,即创建
单例模式:饿汉模式
public class Singleton {
private static Singleton instance = new Singleton();
private Singleton() {}
public static Singleton getInstance() {
return instance;
}
}
单例模式: 饿汉模式
1, 将构造方法私有化, 不允许外部直接创建对象
2, 创建类的唯一 实例, 使用private static 修饰
3, 提供一个用于获取实例的方法, 使用public static修饰
@设计模式---单例模式之 饿汉模式
1. 将构造方法私有化,不允许外部直接访问。
private Singleton(){}
2. 创建类的唯一实例, 使用private static修饰。
private static Singleton instance=new Singleton();
3.提供一个用于获取实例的方法, 使用public static修饰
public static Singleton getInstance(){ return instance; }
单例模式饿汉模式
饿汉模式,用static修饰,静态成员被类所有。所有在类加载的时候,就被创建。没有吃饱,所有被称作饿汉模式
皇帝、老婆,同时只能有一个
饿汉模式
单例模式中的饿汉模式
懒汉模式