`

设计模式系列教程之单例模式-原理介绍

 
阅读更多

设计模式系列教程之单例模式-原理介绍

 

一:单例模式(Singleton)学习步骤

经典的单例模式原理:

本文出处:凯哥Java(wx:kaigejava)

先来看看单例模式的介绍:

其重点就是,使类对象成为系统中唯一的一个实例。怎么理解这句话呢?

我们从数学与逻辑学中来理解:singleton的定义是“有且仅有一个”的意思。

我们来看看单例在哪些地方会被使用到,来理解单例模式的意义:

比如我们系统中使用到的线程池、数据源、缓存及硬件等设备。

从线程池、缓存我们就可以看出单例模式的意义:如果多个实例会有造成冲突、结果的不一致性等问题基于解决这个问题,经过总结,得到了可以在系统中有且仅有一个对象就可以了。

思考:

1:是否可以使用静态变量的方式类实现呢?

其实从使用效果上来看,这种方式也是可以的。

2:程序员之间协商一个全局变量是否也可以呢?

这样做,从使用效果来看也是可以的。

总结:

单例模式;确保一个类最多只有一个实例,并提供一个全局的访问。

怎么设置类为单例呢?

思考点:

1:怎么让类不被随意的构造出来?

2:如果不能随意构造出类,那么如果想要使用这个类怎么办?

问题一:我们来看看,正常的创建类是怎么创建的?

Student studnet = new Student();

使用的是new关键字来创建的。我们又知道使用new关键字创建类的时候,其实调用的就是类的默认构造器-->既是无参构造器。

所以,如果想要类只有一个,把构造器私有化,这样就不能使用new关键字也就是不能使用无参构造器来创建类了。这样就保证了类不被随意的创造了。

问题二:如果构造函数被私有化了,想要使用类怎么办?

可以在Student类中new Student().然后对外提供一个公共的static的方法来获取即可。

来看看经典单例模式的类图:

好了。本节单例模式原理讲解完成。下一节课,我们通过一个小例子用代码实现单例模式

 

凯哥个人博客:www.kaigejava.com

联系凯哥-->凯哥公众号:凯哥Java(kaigejava)

本文凯哥博客地址:http://kaigejava.com/gwjeesns/article/detail/549

 

分享到:
评论

相关推荐

    GOF设计模式中英文+设计模式精解中英文

    GOF(Gang of Four)设计模式,由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四位专家在他们的著作《设计模式:可复用面向对象软件的基础》中提出,被誉为设计模式的经典之作。本资源包含了GOF设计...

    设计模式教程-Java设计模式

    在"JAVA设计模式.chm"这个文件中,可能会详细讲解这些模式的原理、应用场景、优缺点以及示例代码。而"中国java下载站.url"可能是指向一个网站的链接,该网站可能提供了更多关于Java设计模式的资源、示例代码或者相关...

    Mybatis系列教程设计模式共12页.pdf.zip

    【标题】"Mybatis系列教程设计模式共12页.pdf.zip" 提供的是一个关于Mybatis框架和设计模式结合使用的深度教程,总共包含了12页的内容。Mybatis是一款流行的Java持久层框架,它解决了传统JDBC操作数据库时的繁琐工作...

    设计模式实训教程代码 刘伟 Java

    《设计模式实训教程代码 刘伟 Java》是刘伟老师编写的一部针对Java编程者深入理解设计模式的实践教程。该教程通过丰富的代码实例,帮助读者掌握并运用各种设计模式,提升软件开发能力。在本教程中,作者采用作业的...

    经典教程GOF设计模式(中文版)

    《经典教程GOF设计模式(中文版)》这本书详细介绍了每种模式的原理、应用场景及其实现方式,是每一位想要提升软件设计能力的开发者不可或缺的参考书。通过阅读和实践,可以加深对设计原则的理解,如单一职责原则、...

    开发模式:单例和工厂开发模式视频与代码

    本文将详细探讨两种重要的设计模式:单例模式和工厂模式,并结合视频教程与代码示例,帮助读者深入理解这两种模式的实现原理和应用场景。 首先,我们来探讨单例模式。单例模式是一种确保一个类只有一个实例并提供...

    极客学院设计模式教程讲义

    2. **单例模式**:这是最常用的设计模式之一,确保一个类只有一个实例,并提供全局访问点。在多线程环境中,正确实现单例模式是个挑战,讲义可能会讨论线程安全的单例实现。 3. **工厂模式**:它提供了一种创建对象...

    设计模式实训教程代码和类图

    在这个教程中,你可能会接触到一系列经典的面向对象设计模式,包括创建型、结构型和行为型三大类。 创建型设计模式关注对象的创建过程,如单例模式(Singleton)、工厂模式(Factory Method)、抽象工厂模式...

    2020版23种Java设计模式-图解-附代码.pdf

    本教程详细介绍了23种经典的Java设计模式,包括创建型、结构型和行为型模式。下面将对这三大类模式进行深入解析。 1. **创建型模式**: - **工厂方法模式**:定义一个用于创建对象的接口,让子类决定实例化哪一个...

    c#设计模式教程+源码

    《C#设计模式教程+源码》是一份深入学习C#设计模式的宝贵资源,它包含了一套完整的电子书教程和一系列配套的源代码示例。设计模式是软件工程中的重要概念,它代表了在特定场景下解决问题的最佳实践,通过理解和应用...

    Head First 设计模式(中文完整版带书签+附书源码)

    《Head First 设计模式》是一本非常受欢迎的设计模式教程,专为初学者和有经验的开发者设计,旨在帮助读者深入理解和应用设计模式。这本书通过直观、生动的方式,讲解了23种经典的设计模式,涵盖了创建型、结构型和...

    java 设计模式eclipse用法大全

    设计模式.pdf则可能深入讲解了各种设计模式的原理、应用场景以及在Eclipse中的实际运用。结合这两份资源,开发者不仅可以学习如何高效地使用Eclipse,还能理解并掌握如何在实际项目中应用设计模式,提升编程技能。

    C#面向对象设计模式纵横谈视频以及源码

    本文将深入探讨“C#面向对象设计模式纵横谈”视频教程及其源码,帮助开发者理解和掌握这些模式在实际项目中的应用。 首先,我们要理解什么是设计模式。设计模式是软件设计中常见问题的解决方案模板,它描述了在特定...

    .net工厂模式原理视频教程

    .NET工厂模式原理视频教程是一份深入讲解工厂模式的教育资源,主要针对使用.NET平台进行软件开发的程序员。工厂模式是设计模式中的一个基础概念,属于创建型模式,它提供了一种抽象化的方式来创建对象,使得代码在...

    Java的23种设计模式(疯狂Java总结).rar_java设计模式_packagebu1_疯狂java

    "疯狂Java"系列教程以其深入浅出的方式,为开发者提供了学习Java设计模式的宝贵资源。以下是对"Java的23种设计模式(疯狂Java总结)"的详细解读。 1. 创建型模式(Creational Patterns): - 单例模式:确保一个类...

    设计模式ppt

    设计模式是软件工程中的一种最佳实践,它是在特定上下文中解决常见问题的模板或蓝图,...通过阅读和学习这份Java设计模式的教程PPT,开发者可以深入了解每个模式的原理,掌握其应用场景,并能够在实际项目中灵活运用。

    Java设计模式

    标签"DesignPattern2"暗示了这是关于设计模式系列的第二部分,可能涵盖了一些进阶主题,包括但不限于工厂模式、单例模式、建造者模式、原型模式、适配器模式、装饰器模式、桥接模式、代理模式、职责链模式、命令模式...

    java23种设计模式,3套视频加1个ppt

    在《Java之23种设计模式解析_尚硅谷_宋红康.pdf》中,可能会详细讲解每种设计模式的原理、应用场景、优缺点以及如何在实际项目中应用。视频教程则可能通过示例代码进一步解释这些模式,帮助学习者更好地理解和掌握。...

    设计模式_java

    本篇Java设计模式教程将通过Java语言结合实例向读者逐步介绍设计模式的概念。 在学习Java设计模式之前,读者需要具备一定的Java编程语言基础,同时也需要对Eclipse集成开发环境有一个基本的了解,因为本文中的所有...

Global site tag (gtag.js) - Google Analytics