一 模式定义
1 某个类只能有一个实例。
2 该类必须自行创建这个实例。
3 该类必须自行向整个系统提供这个实例。
二单例模式举例
1 模式分析
2 使用同步线程安全创建单例对象
package com.demo.singleton; public class Singleton { // 类共享实例对象 实例化 private static Singleton singleton = null; // 私有构造方法 private Singleton() { System.out.println("-- this is Singleton!!!"); } // 获得单例方法 public synchronized static Singleton getInstance() { // 直接返回共享对象 if(singleton == null) { singleton = new Singleton(); } return singleton; } }
3 创建一个类全局对象实例作为单例对象
package com.demo.singleton; /** * 单例设计模式 * * @author * */ public class Singleton { // 类共享实例对象 实例化 private static Singleton singleton = new Singleton(); // 私有构造方法 private Singleton() { System.out.println("-- this is Singleton!!!"); } // 获得单例方法 public static Singleton getInstance() { // 直接返回共享对象 return singleton; } }
4 单例客户端代码
package com.demo; import com.demo.singleton.Singleton; /** * 客户端应用程序 * * @author * */ public class Client { /** * @param args */ public static void main(String[] args) { // 首先 检验是否能用new操作符创建Singleton对象实例 Singleton singleton = Singleton.getInstance(); // 在此获得Singleton对象实例 Singleton singleton2 = Singleton.getInstance(); // 比较两个对象是否是同一个对象实例 if (singleton == singleton2) { System.out.println("--这是同一个对象!"); } else { System.out.println("--这是不同的对象!"); } } }
运行结果
-- this is Singleton!!!
--这是同一个对象!
三设计模式
1 确保某个类只有一个实例。
2 自行实例化并向整个系统提供这个实例。
相关推荐
单例模式是一种设计模式,旨在确保一个类只有一个实例,并提供全局访问点。在单例模式中,类的构造函数是私有的,防止外部直接创建对象,而是通过静态方法获取该类的唯一实例。单例模式的唯一性通常是在进程范围内,...
"设计模式单例模式和工厂模式综合应用"的主题聚焦于两种常用的设计模式:单例模式和工厂模式,并探讨它们如何协同工作来实现高效、灵活的代码结构。这个主题尤其适用于Java编程语言,因为Java的面向对象特性使得设计...
单例模式是软件设计模式中的一种经典模式,它保证了类只有一个实例存在,并提供一个全局访问点。在Java等面向对象编程语言中,单例模式常用于管理共享资源,如数据库连接池、线程池或者配置文件等。结合工厂模式,...
单例模式是软件设计模式中的一种经典模式,用于确保一个类只有一个实例,并提供一个全局访问点。在Java中,有多种实现单例模式的方法,每种都有其特点和适用场景。接下来,我们将深入探讨这些实现方式。 首先,我们...
在C++编程中,单例模式是一种常用的软件设计模式,它保证一个类只有一个实例,并提供一个全局访问点。线程安全的单例模式在多线程环境下尤其重要,因为不正确的实现可能导致多个线程创建多个实例,这违反了单例模式...
**设计模式——单例模式** 在软件工程中,设计模式是一种在特定场景下解决常见问题的标准方案,可以被复用并提升代码质量。单例模式是设计模式中的一种,它保证一个类只有一个实例,并提供一个全局访问点。这种模式...