今天早上开会,要打印一堆文件(先打印出来 然后再复印(Memento)),整个公司就一个打印机,由于前面有位同事也在打印东西,没有办法只好等他用完了,心里那个急啊,公司怎么不多配几台打印机呢?
公司为了节约资源,对于打印机用了Singleton模式,反正所有的文件打印只能在一台机器上。
对于Singleton的定义如下:
主要为了在整个java工程调用中只用到一个实例,这样节约了内存的消耗(只有一台打印机),如果同时使用,只有等待。但是可以避免启用多个实例,消耗不必要的资源。
public class Printer{
private Printer(){}
private static Printer instance = new Printer();
//这里提供了一个外部调用打印机的方法
public static PrintergetInstance() {
return instance;
}
}
这里是将打印先开下来,然后你可以直接调用。
但是这样好像有点浪费哦,你想想打印机一直开着多浪费,还不如有人用时再打开呢,看看多节约。
public class Printer{
private Printer(){}
private static Printer instance = null;
//这里提供了一个外部调用打印机的方法
public static Printer getInstance() {
if(instance==null)//检查一下 是否开了。
instance = new Printer();
return instance;
}
}
为了防止同步时的情况,大家可以查考 http://www-106.ibm.com/developerworks/java/library/j-dcl.html?dwzone=java
public class Printer{
private Printer(){}
private static Printer instance = null;
//这里提供了一个外部调用打印机的方法
public static synchronized Printer getInstance() {
if(instance==null)//检查一下 是否开了。
instance = new Printer();
return instance;
}
分享到:
相关推荐
单例模式是软件设计模式中的一种经典模式,它在许多场景下被广泛使用,尤其是在需要全局唯一实例的情况下。本文将深入探讨单例模式的概念、作用、实现方式以及其在实际编程中的应用。 单例模式的核心思想是确保一个...
设计模式的学习不仅是为了记住每种模式的应用场景,更重要的是理解其背后的原理和设计理念。通过深入学习和实践,开发者可以逐渐掌握这些模式,并将其内化为自己的设计思维。设计模式的学习过程虽然漫长且充满挑战,...
C++源代码文件可以帮助你更好地理解如何在实际项目中应用这些模式,通过阅读和分析代码,你可以学习如何在C++中实现这些设计模式,并将它们融入到自己的编程实践中。 总而言之,设计模式是软件开发中的宝贵财富,...
### 设计模式精解——GoF 23种设计模式解析及C++实现源码 #### 0. 引言 设计模式是软件工程领域的一个重要概念,它提供了一种解决常见问题的方法论。GoF(Gang of Four)所提出的23种设计模式被视为面向对象设计的...
通过学习和掌握GoF的23种设计模式,可以显著提高程序员的编码水平,使得开发出的软件系统更加健壮、可扩展、易维护。以上每种模式都有其特定的应用场景,理解和掌握它们的关键在于不断实践和总结,在实际项目中灵活...
Java设计模式是面向对象编程...在阅读《Chapter1___Java常用设计模式(SingleTon、FactoryMethod、AbstractFactory)》的相关资料时,你可以更深入地学习这些模式的细节,包括适用场景、优缺点以及如何在实际项目中实现。
- **4.4 为什么使用设计模式——从Singleton模式谈起**:通过分析Singleton模式的特点和应用场景,探讨了设计模式的重要性和实用性。 #### 5. 总结 通过本文的学习,我们可以看到设计模式不仅是一种工具,更是一种...
C++实现源码提供了具体编程环境下的应用实例,帮助读者更好地理解和应用这些设计模式。通过阅读和实践这些源码,开发者可以更深入地掌握如何在实际项目中灵活运用设计模式,提升代码质量和可维护性。
《设计模式那点事》这本书的PPT为我们提供了一种深入理解和学习设计模式的途径。在这里,我们将深入探讨设计模式的核心概念、分类以及它们在实际开发中的应用。 首先,设计模式基于面向对象编程思想,其核心目标是...
### 最简单的设计模式学习:Singleton模式 #### 一、Singleton模式简介 Singleton(单例)模式是一种常用的软件设计模式,其主要目的是确保一个类只有一个实例,并提供一个全局访问点。这种模式在许多场合下非常...
设计模式的学习和应用分为几个阶段:首先自己学会设计模式,然后将其转化为自己的语言表达出来,接着是教授他人并最终记录下来。这种学习路径要求学习者不仅要理解设计模式本身,还要具备清晰的表达能力和深刻的理解...
在Laravel框架中,设计模式的应用是提升代码质量和可维护性的重要手段之一,而Singleton(单例模式)是其中一种常见的模式。Singleton确保一个类只有一个实例,并提供一个全局访问点,这样可以避免创建多个对象导致...
在本案例中,我们聚焦于C#语言中的设计模式,通过"设计模式实例代码"这个项目,我们可以深入理解并学习这些模式的实际应用。 "设计模式"标签表明了这个压缩包的内容主要围绕设计模式展开,涵盖了面向对象设计的核心...
Singleton模式是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点来获取这个唯一的实例。这种模式在需要控制资源的唯一性或者全局访问点时非常有用,比如数据库连接、线程池或者缓存管理等。 ...
通过学习和应用这些设计模式,开发者不仅可以提高代码的可读性、可维护性和可扩展性,还能提升团队间的沟通效率,因为设计模式是软件工程中的通用语言。对于任何有志于提升软件开发水平的人来说,理解和掌握设计模式...