网上有很多关于SingleTon的用法说明及实现,大多都提供了很多种实现的方法,包括如何保证在多线程时也只提供一个实例。对于他的作用都是说只提供一个实例,但是到底有什么作用,对于我们这些初学者来说并不知道如何使用。经过自己的摸索,目前了解到了一些用法,不知道对不对,请高手们指点:
比如我们在程序中设置了一个主窗口:
public partial class DefaultWorkBench :From
{
public DefaultWorkBench()
{
InitializeComponent();
}
}
由于这个窗口我们只需要一个就行了,所以我们使用SingleTon模式。
public class WorkBenchSingleTon
{
private static DefaultWorkBench workBench=new DefaultWorkBench();
public static DefaultWorkBench WorkBench
{
get
{
if (workBench == null)
{
workBench = new DefaultWorkBench();
}
return workBench;
}
}
}
那么这有什么用呢?
我们在Main方法中:Application.Run(WorkBenchSingleTon.WorkBench)就相当于以前的Application.Run(new Form()),而如果我们还有其他的窗口或其他任何地方,需要调用到DefaultWorkBench窗口里面的函数或者控件,如果不使用这个模式,那么我们在另外的窗口的构造函数中需要传入DefaultWorkBench的实例,而现在我们只需要使用简单的:WorkBenchSingleTon.WorkBench.函数名或者属性或者控件就可以进行调用或设置了。特别是我们使用插件的方式进行开发的时候 ,其他的插件一般会和WorkBench进行通信,现在我们就可以在任何地方使用WorkBenchSingleTon.WorkBench来调用主窗口的一些控件的属性了。
在下一篇来介绍使用这种方式开发的插件框架。