比较好的写法:
public class
Singleton{
private static Singleton instance = null;
public static synchronized Singleton getInstance(){
if(instance == null){
instance = new Singleton();
}
return instance;
}
}
单例模式确保一个类只有一个实例,自行提供这个实例并向整个系统提供这个实例。
特点:
1,一个类只能有一个实例
2,自己创建这个实例
3,整个系统都要使用这个实例
例: 在下面的对象图中,有一个"单例对象",而"客户甲"、"客户乙" 和"客户丙"是单例对象的三个客户对象。可以看到,所有的客户对象共享一个单例对象。而且从单例对象到自身的连接线可以看出,单例对象持有对自己的引用。
Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。在很多操作中,比如建立目录 数据库连接都需要这样的单线程操作。一些资源管理器常常设计成单例模式。
外部资源:譬如每台计算机可以有若干个打印机,但只能有一个Printer Spooler,以避免两个打印作业同时输出到打印机中。每台计算机可以有若干个通信端口,系统应当集中管理这些通信端口,以避免一个通信端口被两个请求同时调用。内部资源,譬如,大多数的软件都有一个(甚至多个)属性文件存放系统配置。这样的系统应当由一个对象来管理这些属性文件。
一个例子:Windows 回收站。
在整个视窗系统中,回收站只能有一个实例,整个系统都使用这个惟一的实例,而且回收站自行提供自己的实例。因此,回收站是单例模式的应用。
分享到:
相关推荐
设计模式综合运用:主要是笔者在实际工作中运用到的一些设计模式综合运用事例的提炼 Spring设计模式简介:主要是讲述Spring源码中运用到的一些设计模式 Ibatis设计模式简介:主要是讲述Ibatis源码中运用到的一些设计...
为了更系统的学习设计模式,特地开了这样一个基于Java的设计模式【集中营】,都是笔者在实际工作中用到过或者学习过的一些设计模式的一些提炼或者总检。慢慢地初见规模,也有几个朋友给我点鼓励,给了star。本文工程...
一些设计模式的书籍从语言入口,将语言作为工具来进行解释设计模式如何实现。但是本书是完全从设计模式原理的角度去剖析其内容,注重以流行的面向对象语言JAVA来实现设计模式。如果想从更本上理解设计模式的内涵,...
faif python-patterns 使用Python实现一些设计模式的例子
本科阶段写过一个小游戏,是一门课的大作业,当时...由于觉得这款小游戏题材不错,又有趣味性,所以借鉴了该游戏的思路并对它进行了重构,不仅界面进行了大量优化,同时也加入了一些设计模式,大大提高了软件的扩展性
为了更系统的学习设计模式,特地开了这样一个基于Java的设计模式【集中营】,都是笔者在实际工作中用到过或者学习过的一些设计模式的一些提炼或者总检。慢慢地初见规模,也有几个朋友给我点鼓励,给了star。本文工程...
也在不经意间实现了一些设计模式。 那么我们为什么还要学习设计模式? 一方面,设计模式教我们如何使用面向对象设计的原则解决各种问题; 另一方面,设计模式定义了一种通用语言(跟框架一样,统一一个标准),让...
为了更系统的学习设计模式,特地开辟了这样一个基于Java的设计模式【一些集中营】,都是作者在实际工作中用到或者学习过的设计模式的...Ibatis设计模式简介:主要是讲述Ibatis源码中运用到的一些设计模式(未来增加)
如果你经常为设计不出健壮的可扩展性强的更灵活的软件框架或者为经常修改修改再修改程序而苦恼或者了解一些设计模式但不知在何处应用,那就看看这本书吧别嫌分多保证看过绝不后悔!HeadFirst出品必属精品,该书下载自书...
如果你经常为设计不出健壮的可扩展性强的更灵活的软件框架或者为经常修改修改再修改程序而苦恼或者了解一些设计模式但不知在何处应用,那就看看这本书吧别嫌分多保证看过绝不后悔!HeadFirst出品必属精品,该书下载自书...
如果你经常为设计不出健壮的可扩展性强的更灵活的软件框架或者为经常修改修改再修改程序而苦恼或者了解一些设计模式但不知在何处应用,那就看看这本书吧别嫌分多保证看过绝不后悔!HeadFirst出品必属精品,该书下载自书...
看过一些设计模式方面的书籍和文章,虽然很正式,很权威,(也觉得有那么一点刻板),总是觉得让人不那么好靠近。于是,我思考着像写故事一样来写下自己对设计模式的理解。我们将以一款奇幻角色扮演游戏(D&D)为蓝本,...
一些设计模式的详细讲解,以及应用实例,新手适用。
c++语言实现我们常用的一些设计模式相关的案例,这是一份讲义!
自己收集的一些设计模式的经典书籍资料,很有用~
JavaScript常见的一些设计模式学习笔记和代码实现。包括工厂模式、单例模式、代理模式、发布订阅模式、中介者模式等等内容。