单例模式是设计模式中使用很频繁的一种模式,单例模式的目的是要控制特定的类只产生一个对象,当然允许在一定情况下灵活改变对象的个数。如何限制对象的产生,一个办法是将构造函数编程私有(至少是受保护的),使得外面的类不能用过引用来产生对象。
第一种方式:
class Singleton{
//静态属性
private static Singleton single = new Singleton();
//私有方法
private Singleton(){}
//静态方法
public static Singleton getInstance(){
return single;
}
}
第二种方式:
class Singleton{
//静态属性
private static Singleton single = null;
//私有方法
private Singleton(){}
//静态方法
public static synchronized Singleton getInstance(){
if(single == null){
single = new Singleton();
}
return single;
}
}
第一种方法中,实例是在类被加载的时候实例化的,多次加载会被多次实例化,第二种方式使用同步处理(防止多线程中产生多个实例),在反应速度上比第一种方法慢一点。
以上两种方法都失去了多态性,不允许被继承。
单例模式可分成有状态和无状态,有状态的单例对象一般也是可变的单例对象,多个单例对象在一起可以作为一个状态仓库一样向外提供服务。没有状态的单例对象也就是不变的单例对象,仅作提供工具函数。
抛开单例模式,如下方法也可以得到单例
public static final Singleton INSTANCE = new Singleton();
关于单例模式的使用场景还不是很清楚,没能看懂它潜在的优缺点,以后补上。
分享到:
相关推荐
**设计模式——单例模式** 在软件工程中,设计模式是一种在特定场景下解决常见问题的标准方案,可以被复用并提升代码质量。单例模式是设计模式中的一种,它保证一个类只有一个实例,并提供一个全局访问点。这种模式...
设计模式是软件工程中的一种最佳实践,用于解决在不同场景下重复出现的问题。...通过阅读提供的"iOS 设计模式——单例"相关资料,可以深入理解在iOS开发环境中如何有效利用单例模式来优化代码结构和提高程序性能。
单例模式是软件设计模式中的一种经典模式,它保证了类在任何情况下都只有一个实例存在。这个模式在很多场景下非常有用,例如控制全局资源、管理配置信息等。本文将详细探讨单例模式的懒汉式实现,并结合源码进行解析...
单例的5中实现及反射和反序列化破解单例。
单例模式是软件设计模式中的一种,它的主要目的是确保一个类只有一个实例,并提供一个全局访问点。这种模式在很多场景下都非常有用,比如控制共享资源、管理系统级别的服务或者简化对象间的交互。单例模式的核心在于...
本次将聚焦于一种较为简单的模式——单例模式。 #### 单例模式概述 单例模式是一种创建型模式,它的核心在于确保某个类只有一个实例,并提供一个全局可访问的访问点。这种模式非常实用,尤其是在需要频繁地创建和...
C++设计模式——单例模式-附件资源
单例模式是软件设计模式中的一种经典模式,其主要目的是控制类的实例化过程,确保在任何情况下,一个类只有一个实例存在。这种模式通常用于管理共享资源或者全局配置,例如数据库连接池、线程池、日志服务等。在Java...
【Java设计模式——单例模式】 单例模式是一种常见的软件设计模式,它的核心思想是确保在应用程序的整个生命周期中,某个类只有一个实例存在。这种模式主要用于控制类的实例化过程,减少系统资源的消耗,提高系统...
策略模式和单例模式是软件设计中两种非常重要的设计模式,它们在实际开发中有着广泛的应用。在这篇文章中,我们将深入探讨这两种模式的核心概念、实现方式以及如何在实际项目中运用。 策略模式是一种行为设计模式,...
1)程序功能:单例模式设计Memcache和Redis操作类,采用PHP编写。 2)程序详解地址:http://blog.csdn.net/clevercode/article/details/46410055。 3)原创作品,出自"CleverCode的博客",分类为《设计模式之PHP项目...
单例模式是软件设计模式中的一种,它保证一个类只有一个实例,并提供一个全局访问点。在iOS应用开发中,单例模式被...通过分析和学习提供的"单例模式"源码,你可以更好地掌握这一设计模式,并将其应用于实际项目中。
内容概要:本文档介绍了三个经典的软件设计模式——单例模式(Singleton Pattern)、工厂模式(Factory Pattern)以及观察者模式(Observer Pattern)的具体实现,并给出了带有详细注释的C++代码范例。对每个设计模式都有...
本次我们将深入探讨两种设计模式——单例模式和装饰模式,它们在Java编程中都有着广泛的应用。 首先,让我们来理解“单例模式”。单例模式是一种创建型设计模式,其核心思想是保证一个类只有一个实例,并提供一个...
**设计模式——单例模式** 单例模式是一种广泛应用于软件设计中的创建型设计模式,它的核心思想是确保一个类只有一个实例,并提供一个全局访问点。这样做的好处在于控制共享资源的访问,比如线程安全的数据库连接池...
单例模式是设计模式中最常见也最简单的一种设计模式,保证了在程序中只有一个实例存在并且能全局的访问到。比如在Android实际APP 开发中用到的 账号信息对象管理, 数据库对象(SQLiteOpenHelper)等都会用到单例...
单例模式的实现饿汉式懒汉式线程安全的懒汉式登记式单例模式的优缺点单例模式的优点单例模式的缺点 单例模式是23个模式中比较简单的模式,应用也非常广泛 什么是单例模式? 单例模式的定义: Ensure a class ...