65.9K
CodeProject 正在变化。 阅读更多。
Home

设计模式

starIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIconemptyStarIcon

1.56/5 (7投票s)

2008年6月7日

CPOL

2分钟阅读

viewsIcon

20758

downloadIcon

122

单例设计模式有助于从一个类中仅创建一个对象,并直接使用该对象。

引言

设计模式的概念并非新事物。自从有工程师以来,设计模式就一直存在。建造金字塔的建筑师一定使用过设计模式来构思并最终建造了最经久耐用的质量工程的证明之一。
那么什么是设计模式?简单来说,设计模式命名并描述了常见设计问题的有效解决方案。模式的名称给了我们一个通用的术语,可以在讨论设计解决方案时使用。描述提供了可以应用于常见设计问题的指导方针或模板。

背景

实际上,你不需要在这方面有任何背景知识,因为设计模式只不过是其他人的经验!

设计模式是你在实际应用开发中一次又一次遇到的软件设计问题的重复解决方案。模式是关于对象的设计和交互,以及提供关于优雅的、可重用的解决方案的通信平台,以应对常见的编程挑战。四人帮(GoF)模式通常被认为是所有其他模式的基础。它们分为三类:创建型、结构型和行为型。

严格来说,有了设计模式,你不会想再次发明轮子,尽管你将使用它们来创建最有效的应用程序。在本文中,我将解释什么是单例设计模式以及如何实现它。现在由你来选择在哪里使用它!

来吧,我们一起抱怨吧!

使用代码

好的,什么是单例模式。顾名思义,它与“单一”有关!这个设计模式被归类为“创建模式”,它的目的是确保我们只能从我们希望的类中创建一个对象。因此,我们所有的需求都将围绕着这个对象。

实际上,这个对象作为一个公共的、单一的对象完成所有工作。现在让我们看一些代码

           

public class SingletonPattern

{

//We Intentionally use Private constructor because we want not to be able to create objects

SingletonPattern() { }

//Here is One Nested class for lazy instantiation

//Lazy instantiation means untill there is no invokation there would be

//no object initalization.

class SingletonCreator

{

//This class is not able to be reached by the caller,so we use static private for it.

static SingletonCreator() { }

// Private object instantiated with private constructor

internal static SingletonPattern OneInstance = new SingletonPattern();

}

// Public static property to get the object

public static SingletonPattern ONEInstance

{

get 

{

return SingletonCreator.OneInstance; 

}

}

public void Foo()

{

MessageBox.Show("I have created just Once!");

}

}
        

我使用了延迟实例化。什么是“延迟实例化”?

这意味着直到第一次调用,对象才会被实例化。你也可以使用“静态”字段来进行延迟实例化,因为它们也使用延迟实例化的概念...

所以伙计们,我希望你们理解了什么是单例模式。欢迎任何反馈。编码愉快!

关注点

我现在正在努力工作,努力提高我的面向对象和设计模式知识。如果有人知道这方面的任何有用的领域,请分享。

© . All rights reserved.