设计模式系列教程之单例模式-原理介绍
一:单例模式(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(Gang of Four)设计模式,由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四位专家在他们的著作《设计模式:可复用面向对象软件的基础》中提出,被誉为设计模式的经典之作。本资源包含了GOF设计...
在"JAVA设计模式.chm"这个文件中,可能会详细讲解这些模式的原理、应用场景、优缺点以及示例代码。而"中国java下载站.url"可能是指向一个网站的链接,该网站可能提供了更多关于Java设计模式的资源、示例代码或者相关...
【标题】"Mybatis系列教程设计模式共12页.pdf.zip" 提供的是一个关于Mybatis框架和设计模式结合使用的深度教程,总共包含了12页的内容。Mybatis是一款流行的Java持久层框架,它解决了传统JDBC操作数据库时的繁琐工作...
《设计模式实训教程代码 刘伟 Java》是刘伟老师编写的一部针对Java编程者深入理解设计模式的实践教程。该教程通过丰富的代码实例,帮助读者掌握并运用各种设计模式,提升软件开发能力。在本教程中,作者采用作业的...
《经典教程GOF设计模式(中文版)》这本书详细介绍了每种模式的原理、应用场景及其实现方式,是每一位想要提升软件设计能力的开发者不可或缺的参考书。通过阅读和实践,可以加深对设计原则的理解,如单一职责原则、...
2. **单例模式**:这是最常用的设计模式之一,确保一个类只有一个实例,并提供全局访问点。在多线程环境中,正确实现单例模式是个挑战,讲义可能会讨论线程安全的单例实现。 3. **工厂模式**:它提供了一种创建对象...
在这个教程中,你可能会接触到一系列经典的面向对象设计模式,包括创建型、结构型和行为型三大类。 创建型设计模式关注对象的创建过程,如单例模式(Singleton)、工厂模式(Factory Method)、抽象工厂模式...
本教程详细介绍了23种经典的Java设计模式,包括创建型、结构型和行为型模式。下面将对这三大类模式进行深入解析。 1. **创建型模式**: - **工厂方法模式**:定义一个用于创建对象的接口,让子类决定实例化哪一个...
《C#设计模式教程+源码》是一份深入学习C#设计模式的宝贵资源,它包含了一套完整的电子书教程和一系列配套的源代码示例。设计模式是软件工程中的重要概念,它代表了在特定场景下解决问题的最佳实践,通过理解和应用...
《Head First 设计模式》是一本非常受欢迎的设计模式教程,专为初学者和有经验的开发者设计,旨在帮助读者深入理解和应用设计模式。这本书通过直观、生动的方式,讲解了23种经典的设计模式,涵盖了创建型、结构型和...
设计模式.pdf则可能深入讲解了各种设计模式的原理、应用场景以及在Eclipse中的实际运用。结合这两份资源,开发者不仅可以学习如何高效地使用Eclipse,还能理解并掌握如何在实际项目中应用设计模式,提升编程技能。
本文将深入探讨“C#面向对象设计模式纵横谈”视频教程及其源码,帮助开发者理解和掌握这些模式在实际项目中的应用。 首先,我们要理解什么是设计模式。设计模式是软件设计中常见问题的解决方案模板,它描述了在特定...
.NET工厂模式原理视频教程是一份深入讲解工厂模式的教育资源,主要针对使用.NET平台进行软件开发的程序员。工厂模式是设计模式中的一个基础概念,属于创建型模式,它提供了一种抽象化的方式来创建对象,使得代码在...
"疯狂Java"系列教程以其深入浅出的方式,为开发者提供了学习Java设计模式的宝贵资源。以下是对"Java的23种设计模式(疯狂Java总结)"的详细解读。 1. 创建型模式(Creational Patterns): - 单例模式:确保一个类...
设计模式是软件工程中的一种最佳实践,它是在特定上下文中解决常见问题的模板或蓝图,...通过阅读和学习这份Java设计模式的教程PPT,开发者可以深入了解每个模式的原理,掌握其应用场景,并能够在实际项目中灵活运用。
标签"DesignPattern2"暗示了这是关于设计模式系列的第二部分,可能涵盖了一些进阶主题,包括但不限于工厂模式、单例模式、建造者模式、原型模式、适配器模式、装饰器模式、桥接模式、代理模式、职责链模式、命令模式...
在《Java之23种设计模式解析_尚硅谷_宋红康.pdf》中,可能会详细讲解每种设计模式的原理、应用场景、优缺点以及如何在实际项目中应用。视频教程则可能通过示例代码进一步解释这些模式,帮助学习者更好地理解和掌握。...
本篇Java设计模式教程将通过Java语言结合实例向读者逐步介绍设计模式的概念。 在学习Java设计模式之前,读者需要具备一定的Java编程语言基础,同时也需要对Eclipse集成开发环境有一个基本的了解,因为本文中的所有...
《Head First设计模式》是一本经典的面向对象设计模式教程,它采用了一种非常直观和易于理解的方式介绍了各种设计模式。该书不仅仅局限于理论讲解,还通过大量的实例来帮助读者深入理解每一种设计模式的应用场景及其...