学习TerryLee 的设计模式:单态模式(附全码)_AX
最近对设计模式很感兴趣,遂开始学习TerryLee 的.NET设计模式系列文章 :下面为其链接
http://terrylee.cnblogs.com/archive/2006/06/01/334911.html
【单态模式】创建一个类,我们只能使用这个类的同一个实例.
【追加】
可以把:public sealed class Singleton
改为:public class Singleton
因为:构造函数被标记为private,这种类是不能被实例化的.
严格的说是不能在类外被实例化,可以在此类的内部实例化(这种方式可以用于实现单件设计模式)。注意一点,这样的类也不能够作为基类来继承。
引自:epjnpe的接口部分
http://epjnpe.cnblogs.com/archive/2006/06/11/423311.html
http://terrylee.cnblogs.com/archive/2006/06/01/334911.html
【单态模式】创建一个类,我们只能使用这个类的同一个实例.
1
using System;
2![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
namespace ClassLibrary_AX
4
{
5
public sealed class Singleton
6
{
7
//创建一个静态的Singleton实例,外部不可访问(同一个解决方案的不同项目)
8
static readonly Singleton onlyOne=new Singleton();
9
//私有的构造方法外部不可创建实例
10
private Singleton()
11
{
12
}
13
//通过Singleton的OnlyOne属性返回onlyOne实例
14
public static Singleton OnlyOne
15
{
16
get
17
{
18
return onlyOne;
19
}
20
}
21
}
22
}
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
10
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
12
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
13
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
14
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
15
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
16
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
17
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
18
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
19
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
20
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
21
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
22
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
【追加】
可以把:public sealed class Singleton
改为:public class Singleton
因为:构造函数被标记为private,这种类是不能被实例化的.
严格的说是不能在类外被实例化,可以在此类的内部实例化(这种方式可以用于实现单件设计模式)。注意一点,这样的类也不能够作为基类来继承。
引自:epjnpe的接口部分
http://epjnpe.cnblogs.com/archive/2006/06/11/423311.html
少帮主的斧头好久不饮血了!