面向对象通识15(单例模式)

Java概念——设计模式:对于一批经常出现的涉及场景,前人已经总结了一些较为成功的设计——这就是设计模式。后人学习并模仿,从而提高我们的代码质量。

存在意义

单例模式:在某些场景下,某些类只需要或者只能创建一个实例——

  • 系统的窗口管理器

  • 数据库的引擎访问点

  • Java程序所在的JRE运行环境
    此时需要采用单例模式

创建方法

因为只能有一个实例,所以构造器不能暴露——

  1. 隐藏构造器,用户创建不了实例

  2. 暴露一个static方法用于创建实例(因为该方法被创建的时候不存在也无法创建对象,无法用对象进行调用,所以必须加上static修饰符用类进行调用)

  3. 创建的该方法必须保证只有一个实例
    举例:

    1. public class Single {
    2. //创建一个实例变量s
    3. private static Single s;
    4. //构造器隐藏
    5. private Single(){
    6. }
    7. //暴露一个方法用于创建对象
    8. public static Single use(){
    9. if(s==null){
    10. s=new Single();
    11. }
    12. return s;
    13. }
    14. /*
    15. 如果s为空,则创建一个(有且只有一个)实例,
    16. 如果s不为空,则直接返回该实例
    17. */
    18. }
  1. public class SingleTest {
  2. public static void main(String[] args) {
  3. Single s1=Single.use();
  4. Single s2=Single.use();
  5. System.out.println(s1==s2);
  6. }
  7. }
  8. /*
  9. true
  10. 此时证明s1和s2是同一个实例
  11. */