Java—单例类(设计模式)
目录
1、认识设计模式
2、单例设计模式
2.1单例类、写法步骤
俄汉式单例小结
3、懒汉式单例
懒汉式单例小结
1、认识设计模式
什么事设计模式?
- 一个问题通常有n种解法,其中肯定有一种解法是最优的,这个最优的解法被人总结出来了,称之为设计模式。
- 设计模式有20多种,对应20多种软件开发中遇到的问题。
关于设计模式,主要学什么?
- 解决什么问题?
- 这个问题怎么写
2、单例设计模式
作用:确保某个类只能创建一个对象。
比如:任务管理器在Java中可以认为是一个窗口对象。这个窗口只有一个已经能够满足用户的使用了。

2.1单例类、写法步骤

A类 单例类
//把A设计成单例类
public class A {//1、私有化构造器.确保单例类在外面不能创建对象,使得单例类有了可能private A(){}//2.定义静态常量,用于本类的唯一对象private static A a = new A(); //这里也可可以写成public static final A a = new A(); 让后省去第三步骤。 //3.提供公共的静态方法,返回常量apublic static A getInstance(){return a;}
Test类
public class Teat {public static void main(String[] args) {A a1= A.getInstance() ;A a2= A.getInstance() ;System.out.println(a1==a2);}
}
单例类有很多种形式
上面我们学的是饿汉式单例。下面还会还会学习懒汉式单例。

俄汉式单例小结

3、懒汉式单例

B类 懒汉式单例
//设计成懒汉是单列
public class B {//1.私有化构造器private B(){}//2.定义静态常量,用于本类的唯一对象private static B b;//3.提供公共的静态方法,返回常量bpublic static B getInstance(){if(b == null){b = new B();}return b;}
}
Test测试类
public class Teat {public static void main(String[] args) {B b1 = B.getInstance();B b2 = B.getInstance();System.out.println(b1);System.out.println(b2);System.out.println(b1 == b2);}
}
/*代码输出结果:
Test3.B@6f2b958e
Test3.B@6f2b958e
true*/
懒汉式单例小结

