`
webcode
  • 浏览: 5955711 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

自己理解的单件模式

 
阅读更多

单件模式(Singleton)是一个非常简单的模式,这是我第一个理解并且能运用的模式。有时候模式的复杂程度并不在于本身,而是由于他的应用目 的。最初的时候面对一个模式经常充满了困惑,一个简单的调用为什么要搞的如此复杂?为什么要建立这么多类,只是为了打开一个文件。

通常说来学习一个模式是一个接受、认可、领会的过程。接受:了解模式的结构,了解实例的意义;认可:认可该模式在实际工程中的作用和可行性;领会:将模式应用到开发过程中。

而模式的应用目的说到底无非是为了降低模块之间在时间和空间上的耦合程度,以此提高模块的复用性,降低出错的概率。

单件模式

Singleton模式是一个较为简单的模式,下面的代码就可以建立一个Singlton模式的例子,这是一个写系统日志的类。

publicclassLogWriter

...{

//申明一个静态的变量,类型为类本身

privatestaticLogWriter_instance=null;

 

//将类的构造函数私有化,使得这个类不可以被外界创建

privateLogWriter()

...{

}


 

//提供静态的方法,创建类的实例

publicstaticLogWriterGetInstance()

...{

if(_instance==null)

...{

_instance
=newLogWriter();

}


return_instance;

}


 

//下面实现类的其他功能

//....

}

调用者不可以通过new的形式得到Singleton的实例,调用的例子如下:

LogWriterlog=LogWriter.GetInstance();

log.Debug(
"helloworld");

实际应用

很容易想象,单件模式适用于下面的情况:整个系统中某个对象是唯一的,或者是有固定数量的。比如数据库连接,配置文件,等等……

模式是一种程序员间的约定术语,语言可以成为思维的基础。有了这样的语言,一些复杂的概念就变得容易交流了。比如设计人员只要说到,某个类是一个单件模式,是一个Singleton,程序员听见以后就至少应该明白这个类的调用方式了,而不用再详细的说明。

分享到:
评论

相关推荐

    基于C#的设计模式中的单件模式

    设计模式中的单件模式,此程序是基于C#语言的,C#语言容易理解!

    设计模式面面观(10):桥接模式(Bridge Pattern)-结构型模式

    设计模式之我见(1):设计模式概述 (100%) 设计模式面面观(2):设计模式基本要素与原则 (100%) 设计模式面面观(3):单件模式(Singletion)-创建型模式 (100%) 设计模式面面观(4):工厂模式...

    Singleton 单件(创建型模式)

    会继续上载,可以帮助大家理解设计模式的使用,不错的东西

    设计模式精解及面试攻略

    第4章讨论创造型模式(抽象工厂、工厂方法、生成器、原型和单件模式);第5章讨论结构型模式(适配器、桥接、组成、装饰、外观、享元和代理模式);第6章阐释行为模式(职责链、命令、解释器、迭代器、中介者、备忘...

    系统架构技能之设计模式-单件模式

    一、开篇其实我本来不是打算把系统架构中的一些设计模式单独抽出来讲解的,因为很多的好朋友也比较关注这方面的内容,所以我想通过我理解及平时项目中应用到的一些常见的设计模式,拿出来给大家做个简单讲解,我这里...

    设计模式 GOF 23

    在系统开发阶段强调这种机制的优势在于,它能使所生成的系统体系结构更加精巧、简洁和易于理解,其程度远远超过了未使用模式的体系结构。 模式在构造复杂系统时的重要性早已在其他领域中被认可。特别地,...

    设计模式:可复用面向对象软件的基础--详细书签版

    在系统开发阶段强调这种机制的优势在于,它能使所生成的系统体系结构更加精巧、简洁和易于理解,其程度远远超过了未使用模式的体系结构。  模式在构造复杂系统时的重要性早已在其他领域中被认可。特别地,...

    Ogre设计模式

    解析了Ogre里面用到的诸如单件模式和工厂模式等的设计模式思想,是一个很有用的文档,在理解了Ogre构造的基础上阅读此文档会得到很好的提升。

    二十三种设计模式【PDF版】

    为能和大家能共同探讨"设计模式",我将自己在学习中的心得写下来,只是想帮助更多人更容易理解 GoF 的《设计模式》。由 于原著都是以C++为例, 以Java为例的设计模式基本又都以图形应用为例,而我们更关心Java在中间件等...

    23种经典设计模式-C#版本

    使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的;设计模式使代码编制真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。

    asp.net知识库

    2分法-通用存储过程分页(top max模式)版本(性能相对之前的not in版本极大提高) 分页存储过程:排序反转分页法 优化后的通用分页存储过程 sql语句 一些Select检索高级用法 SQL server 2005中新增的排序函数及应用 ...

    中美 IT 培训 C# Asp.net 笔记2

    C# 基本语法、面向对象的思想、数据结构和算法以及设计模式(120课时) 详细介绍.Net Framework、C# 基本语法、编程规范和编程技巧、面向对象的认识问题和分析问题的思想、以及数据结构和常用算法,学习单件模式、...

    中美 IT 培训 C# Asp.net 全套笔记1

    C# 基本语法、面向对象的思想、数据结构和算法以及设计模式(120课时) 详细介绍.Net Framework、C# 基本语法、编程规范和编程技巧、面向对象的认识问题和分析问题的思想、以及数据结构和常用算法,学习单件模式、...

    中美 IT 培训 C# Asp.net 笔记3

    C# 基本语法、面向对象的思想、数据结构和算法以及设计模式(120课时) 详细介绍.Net Framework、C# 基本语法、编程规范和编程技巧、面向对象的认识问题和分析问题的思想、以及数据结构和常用算法,学习单件模式、...

    值类型与引用类型理论内容.part01.rar

    详细介绍.Net Framework、C# 基本语法、编程规范和编程技巧、面向对象的认识问题和分析问题的思想、以及数据结构和常用算法,学习单件模式、适配器模式和工厂模式。 深入了解.Net FrameWork、掌握C#语法,学会C#编程...

    值类型与引用类型理论内容.part05.rar

    详细介绍.Net Framework、C# 基本语法、编程规范和编程技巧、面向对象的认识问题和分析问题的思想、以及数据结构和常用算法,学习单件模式、适配器模式和工厂模式。 深入了解.Net FrameWork、掌握C#语法,学会C#编程...

    ERP学习必看课件,详细的讲解了ERP的内容

    在全球竞争激烈的大市场中,无论是流程式的物流业还是离散式的制造业,无论是单件生产、多品种小批量生产、少品种重复生产还是标准产品大量生产的制造,制造业内部管理都可能遇到一些问题: 例如:企业可能拥有...

Global site tag (gtag.js) - Google Analytics