`

一些设计模式

阅读更多
比较好的写法:

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 回收站。
在整个视窗系统中,回收站只能有一个实例,整个系统都使用这个惟一的实例,而且回收站自行提供自己的实例。因此,回收站是单例模式的应用。
分享到:
评论

相关推荐

    Java 经典设计模式讲解以及项目实战

    设计模式综合运用:主要是笔者在实际工作中运用到的一些设计模式综合运用事例的提炼 Spring设计模式简介:主要是讲述Spring源码中运用到的一些设计模式 Ibatis设计模式简介:主要是讲述Ibatis源码中运用到的一些设计...

    经典设计模式讲解以及项目实战(Java版)

    为了更系统的学习设计模式,特地开了这样一个基于Java的设计模式【集中营】,都是笔者在实际工作中用到过或者学习过的一些设计模式的一些提炼或者总检。慢慢地初见规模,也有几个朋友给我点鼓励,给了star。本文工程...

    设计模式原理 精髓分析

    一些设计模式的书籍从语言入口,将语言作为工具来进行解释设计模式如何实现。但是本书是完全从设计模式原理的角度去剖析其内容,注重以流行的面向对象语言JAVA来实现设计模式。如果想从更本上理解设计模式的内涵,...

    java设计模式案例

    例如,在.NET框架中,反射和委托等技术可以简化一些设计模式的实现。因此,学习设计模式时,要结合实际使用的编程语言和开发平台,了解其对设计模式支持的程度。 需求驱动是选择和应用设计模式的关键。只有当设计...

    JAVA设计模式-设计模式公司出品

    接下来,我们来详细探讨书中提及的一些设计模式: 1. 策略模式(STRATEGYPATTERN):策略模式定义了一系列算法,并将每一个算法封装起来,而且使它们可以互换。策略模式让算法的变化独立于使用算法的客户。 2. ...

    java设计模式经典教程

    除了这23种经典设计模式之外,还有其他一些设计模式,如J2EE设计模式等,它们也经常被应用于实际开发中。 #### 六、设计模式的六大原则 1. **开闭原则**:软件实体应该对扩展开放,对修改关闭。这意味着在不修改...

    设计模式的几本书

    在面向对象设计原则的基础上,《Java设计模式》第二版还可能深入讨论Java语言特有的一些设计模式实现方式,如策略模式与Java枚举的结合使用,以及模板方法模式在异常处理中的应用。策略模式允许在一个类的行为中选择...

    设计模式大作业(含源代码+PPT+报告)

    本科阶段写过一个小游戏,是一门课的大作业,当时...由于觉得这款小游戏题材不错,又有趣味性,所以借鉴了该游戏的思路并对它进行了重构,不仅界面进行了大量优化,同时也加入了一些设计模式,大大提高了软件的扩展性

    设计模式Delphi版.rar

    Delphi的VCL库本身就已经内置了一些设计模式的应用,比如TComponent的继承体系体现了组合模式,而事件驱动机制则暗含了观察者模式。 通过学习和实践这个压缩包中的内容,Delphi开发者可以提升他们的设计能力,编写...

    侯捷 设计模式 课件

    这门课程涵盖了设计模式的基本原理、GoF的设计模式以及超越GoF之外的一些设计模式。 ### 二、设计模式的应用与实践 #### 1. GoF设计模式的实践 - **GoF设计模式**主要包括创建型模式、结构型模式和行为型模式三大...

    Java扩大Java设计模式

    为了更系统的学习设计模式,特地开了这样一个基于Java的设计模式【集中营】,都是笔者在实际工作中用到过或者学习过的一些设计模式的一些提炼或者总检。慢慢地初见规模,也有几个朋友给我点鼓励,给了star。本文工程...

    HeadFirst设计模式英文版

    在这一章节的末尾,作者以整体的视角审视封装行为的重要性,展示了设计模式的力量,并介绍了一些设计模式的使用方法和工具箱中的设计工具。 第2章继续探讨设计模式的应用,特别是在对象之间保持知识更新的情况下。...

    设计模式-在线

    另外,从提供的文件内容来看,还有其他一些设计模式的名称被提及,如适配器模式(Adapter)、桥接模式(Bridge)、组合模式(Composite)、外观模式(Facade)、享元模式(Flyweight)、解释器模式(Interpreter)、...

    java web设计模式

    以下是Java Web开发中常见的一些设计模式及其详细解释: 1. **单例模式**:保证一个类只有一个实例,并提供全局访问点。在Java Web应用中,例如用于管理数据库连接池或配置对象。 2. **工厂模式**:为创建对象提供...

    php设计模式案例详解

    以下是对标题和描述中提及的一些设计模式的详细说明: 1. **解释器设计模式**:它允许我们创建一个简单的语言或表达式的解析器。在这个模式中,每个语法元素都由一个类来表示,这些类组合起来可以解析整个表达式。 ...

    IBM内部培训资料,设计模式讲解

    以下是对IBM内部培训资料中提到的一些设计模式的详细解释: 1. **工厂模式**: 工厂模式是一种创建型设计模式,它提供了一个创建对象的接口,但允许子类决定实例化哪一个类。在Java中,工厂模式通常用于将对象的...

    侯捷2015设计模式课件-同济

    这次分享不仅覆盖了GoF的经典设计模式,还探索了GoF之外的一些设计模式,以及在C++和Java语言中的具体应用和实现。 首先,设计模式课件回顾了面向对象编程(Object-Oriented Programming,OOP)的基本原则,如封装...

Global site tag (gtag.js) - Google Analytics