最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Singleton深入浅出
时间:2008-01-12 编辑:简简单单 来源:一聚教程网
意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。
动机:对于一些类来说,只有一个实例是很重要的。虽然系统中可以有许多打印机,但却只应该有一个打印假脱机(printer spooler),只应该有一个文件系统合一个窗口管理器。
适用性
1. 当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。
2. 当这个唯一实例应该时通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。
优点
1.对唯一实例的受控访问
2.缩小名空间
3.允许对操作和表示的精化
4.允许可变数目的实例
5.比类操作更灵活好了,看了这么多理论,厌倦了吧,下面我们看一些实例代码,典型的 Singleton 类如下
class Singleton
{
public static Singleton Instance() = new Singleton();
}
Class Singleton
Public Shared Instance As Singleton = New Singleton
End Class
C#
VB
呵呵,够简单吧,当然实际应用时要复杂的多。回顾上面的理论,你可能已经注意到意图已经实现:通过 Singleton.Instance 我们已经有了访问它的全局访问点,静态成员Instance将返回类的唯一一个实例
可是实际中如何运用呢?据个例子,我们现在要做一个游戏,而游戏中需要加载一些Sprite,这些Sprite来自于一些bmp资源,为了提升性能并使程序中只有一个实例,这时我们考虑使用Singleton模式
class Sprites
{
///
/// Public field giving access the the instance of the Sprites class.
///
public static readonly Sprites Instance = new Sprites();
public Bitmap[] Tiles;
-
上一个: 禁止在TextBox中输入
-
下一个: 考试系统之填空题-实现方法
相关文章
- C#复制数组的两种方式及效率比较解读 10-24
- ASP.NET Identity用法解析 10-24
- ASP.NET MVC使用Identity增删改查用户介绍 10-24
- C语言中atoi函数模拟实现介绍 10-18
- .Net反向代理组件Yarp用法介绍 10-10
- .NET使用YARP通过编码方式配置域名转发实现反向代理教程 10-10