C#设计模式(5)-Factory Method Pattern
2007-09-28 13:17
801 查看
一、 工厂方法(Factory Method)模式
工厂方法(FactoryMethod)模式是类的创建模式,其用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。工厂方法模式是简单工厂模式的进一步抽象和推广。由于使用了多态性,工厂方法模式保持了简单工厂模式的优点,而且克服了它的缺点。
在工厂方法模式中,核心的工厂类不再负责所有产品的创建,而是将具体创建工作交给子类去做。这个核心类仅仅负责给出具体工厂必须实现的接口,而不接触哪一个产品类被实例化这种细节。这使得工厂方法模式可以允许系统在不修改工厂角色的情况下引进新产品。
在Factory Method模式中,工厂类与产品类往往具有平行的等级结构,它们之间一一对应。
二、 Factory Method模式角色与结构:
using System;public abstract class Light
public class BulbLight : Light
public class TubeLight : Light
public abstract class Creator
public class BulbCreator : Creator
public class TubeCreator : Creator
public class Client
// Factory Method pattern -- Real World example
using System;
using System.Collections;
// "Product"
abstract class Page
// "ConcreteProduct"
class SkillsPage : Page
// "ConcreteProduct"
class EducationPage : Page
// "ConcreteProduct"
class ExperiencePage : Page
// "ConcreteProduct"
class IntroductionPage : Page
// "ConcreteProduct"
class ResultsPage : Page
// "ConcreteProduct"
class ConclusionPage : Page
// "ConcreteProduct"
class SummaryPage : Page
// "ConcreteProduct"
class BibliographyPage : Page
// "Creator"
abstract class Document
// "ConcreteCreator"
class Resume : Document
// "ConcreteCreator"
class Report : Document
class FactoryMethodApp
public static void Main( string[] args )
Document[] docs = new Document[ 2 ];
// Note: constructors call Factory Method
docs[0] = new Resume();
docs[1] = new Report();
// Display document pages
foreach( Document document in docs )
Console.WriteLine( " " + document + " ------- " );
foreach( Page page in document.Pages )
Console.WriteLine( " " + page );
}
}
}
相关文章推荐
- C#设计模式(5)-Factory Method Pattern
- C#设计模式(5)-Factory Method Pattern
- C#设计模式(5)-Factory Method Pattern
- C#设计模式(5)-Factory Method Pattern
- C#设计模式-Factory Method Pattern
- C#设计模式(5)-Factory Method Pattern
- C#设计模式(5)-Factory Method Pattern
- C#设计模式——抽象工厂模式(Abstract Factory Pattern)
- 乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)
- C#设计模式之Factory Method
- 设计模式(四)-工厂模式(Factory Method Pattern/Factory Pattern)——将实例的生成交给子类
- C#设计模式(4)-Simple Factory Pattern
- C#设计模式之简单工厂模式(Simple Factory Pattern)
- C#设计模式(4)-Simple Factory Pattern
- C#设计模式(6)-Abstract Factory Pattern
- C#设计模式(6)-Abstract Factory Pattern
- C# 设计模式 (1) Factory Method 模式
- 乐在其中设计模式(C#) - 抽象工厂模式(Abstract Factory Pattern)
- 四.创建型设计模式——Factory Method Pattern(工厂方法模式)
- 设计模式之C#实现--FactoryMethod