yyw84 发表于 2013-2-4 21:46:54

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]
查看完整版本: C#面向对象设计模式纵横谈(2):Singleton 单件(创建型模式) 笔记