目录

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.提供公共的静态方法,返回常量a
    public 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.提供公共的静态方法,返回常量b
    public 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
 */

懒汉式单例小结

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐