c#设计模式-工厂方法
2012-05-10 13:56
591 查看
一、 工厂方法(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#设计模式:抽象工厂方法模式
- C#设计模式——工厂方法
- C# 设计模式-工厂方法(Factory Method)
- c#设计模式- Factory Method模式(工厂方法)
- c#设计模式-工厂方法
- C#设计模式-工厂方法(总结)
- C#设计模式之工厂方法
- C# 设计模式 之 工厂方法
- 扩展无极限:工厂设计模式与C#扩展方法的结合使用
- C#面向对象设计模式纵横谈(四) --- Factory Method 工厂方法(创建型模式)
- [C#]设计模式-工厂方法-创建型模式
- c#设计模式-工厂方法
- C#设计模式--工厂方法
- C#设计模式--工厂方法
- 设计模式之(Factory method)工厂方法模式
- 设计模式解密(2)- 工厂模式(简单工厂、工厂方法、抽象工厂)
- 设计模式-工厂方法(Factory Method)
- c++ 设计模式8 (Factory Method 工厂方法)
- 设计模式之-简单工厂、工厂方法、抽象工厂
- C#之三十八 简单工厂设计模式