C#面向对象设计模式纵横谈(2):Singleton 单件(创建型模式) 笔记
(很喜欢李建忠老师的这个讲座,可惜暂时没更多的了,继续关注 MSDN WebCast 网络广播)C#面向对象设计模式纵横谈(2):Singleton 单件(创建型模式)模式分类
http://www.agoit.com/images/cnblogs_com/yyw84/模式分类.JPG
目的
创建型
结构型
行为型
范
围
类
工厂方法(Factory Method)
适配器(类,Adapter)
解释器(Interpreter)
模板方法(Template Method)
对
象
抽象工厂(Abstract Factory)
生成器(Builder)
原型(Prototype)
单件(Singleton)
适配器(对象,Adapter)
桥接(Bridge)
组成(Composite)
装饰(Decorator)
外观(Facade)
享元(Flyweight)
代理(Proxy)
职责链(Chain of Responsibility)
命 令(Command)
迭代器(Iterator)
中介者(Mediator)
备忘录(Memento)
观察者(Observer)
状 态(State)
策 略(Strategy)
访问者(Visitor)
动机(Motivation)
http://www.agoit.com/images/cnblogs_com/yyw84/动机Motivation.JPG
意图(Intent)
http://www.agoit.com/images/cnblogs_com/yyw84/意图Intent.JPG
Singleton 模式实现
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee;">http://www.agoit.com/Images/OutliningIndicators/ExpandedBlockStart.gifhttp://www.agoit.com/Images/OutliningIndicators/ContractedBlock.gif/**//// <summary>
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif/// 单线程 Singleton 模式实现
http://www.agoit.com/Images/OutliningIndicators/ExpandedBlockEnd.gif/// </summary>
http://www.agoit.com/Images/OutliningIndicators/None.gifpublic class Singleton
http://www.agoit.com/Images/OutliningIndicators/ExpandedBlockStart.gifhttp://www.agoit.com/Images/OutliningIndicators/ContractedBlock.gifhttp://www.agoit.com/Images/dot.gif{
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif private static Singleton instance;
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif
http://www.agoit.com/Images/OutliningIndicators/ExpandedSubBlockStart.gifhttp://www.agoit.com/Images/OutliningIndicators/ContractedSubBlock.gif private Singleton() http://www.agoit.com/Images/dot.gif{}//私有的构造器使得外部无法创建该类的实例
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif public static Singleton Instance
http://www.agoit.com/Images/OutliningIndicators/ExpandedSubBlockStart.gifhttp://www.agoit.com/Images/OutliningIndicators/ContractedSubBlock.gif http://www.agoit.com/Images/dot.gif{
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif get
http://www.agoit.com/Images/OutliningIndicators/ExpandedSubBlockStart.gifhttp://www.agoit.com/Images/OutliningIndicators/ContractedSubBlock.gif http://www.agoit.com/Images/dot.gif{
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif if ( instance == null )
http://www.agoit.com/Images/OutliningIndicators/ExpandedSubBlockStart.gifhttp://www.agoit.com/Images/OutliningIndicators/ContractedSubBlock.gif http://www.agoit.com/Images/dot.gif{
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif instance = new Singletion();
http://www.agoit.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif }
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif return instance;
http://www.agoit.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif }
http://www.agoit.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif }
http://www.agoit.com/Images/OutliningIndicators/ExpandedBlockEnd.gif}
页:
[1]