124-设计模式和单例模式-【视频讲解】

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012725164/article/details/89466445

点击查看视频讲解

1. 单例设计模式

1.1. 单例设计(singleton)模式介绍

1.1.1. 设计模式:

就是对一些常见问题进行归纳总结,并针对具体问题给出一套通用的解决办法(强调的是解决问题的思想);在开发中,只要遇到这类问题,就可以直接使用这些设计模式解决问题;

最早起源于建筑领域,在建筑领域把一些问题和经验进行归纳总结,形成一套可以用来在建筑领域解决大多数问题的方案;

后来计算机领域借鉴了建筑领域的设计模式,把计算机领域中经常遇到的问题进行归纳和总结,形成计算机领域23中设计模式;

1.1.2. 单例(单态、原子)设计模式:

单例设计模式:解决的就是在程序运行过程中,一个类最多只能创建一个对象 的问题;

生活中的单例:太阳,就是一个单例;

扫描二维码关注公众号,回复: 5981400 查看本文章

1.2. 单例设计模式的实现

1.2.1. 单例代码实现

需求:使用Java代码描述太阳,要求最多只能创建一个对象;

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

/**

 * Sun

 * 表示太阳的类

 * @author 快学大数据

 * 2018年6月15日 下午3:10:33

 */

public class Sun {

    /* 

     * 思考:这个类,要求最多只能创建一个对象;

     * 分析对象创建过程,发现,创建一个对象,需要使用new关键字和构造函数,

     * 所以应该从new关键字和构造函数这两者上想办法;

     * new关键字,是Java内置的一个关键字,程序员不能控制,所以只能控制构造函数,

     * 不让其他地方随意使用;

     * 使用private关键字修饰构造函数,这个类之外的地方就自然不能使用;

     */

    private Sun() {}

    /*

     * 思考:单例不是没有对象,而是最多创建一个对象,就是还需要创建一个对象出来;

     * 因为构造函数私有了,外界都不能使用,所以这个对象应该在这个类里面创建;

     * 创建好的对象,需要使用一个成员变量保存;

     * 保存这个唯一对象的成员变量,需要是静态的,而且为了安全,应该私有化。

     */

    private static Sun ss = new Sun();

    /*

     * 因为保存 这个对象的变量被封装了,外界不能访问到,

     * 所以应该提供一个公开的get方法,供外界使用;

     * 又因为外界在调用这个方法获取sun对象之前,没有Sun的对象,

     * 所以不能通过对象调用这个方法,所以这个方法应该用static修饰

     */

    public static Sun getSun() {

        return ss;

    }

}

猜你喜欢

转载自blog.csdn.net/u012725164/article/details/89466445