【设计模式】之 Factory Method 工厂方法
2012-03-02 16:01
363 查看
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Collections; namespace DesignFactory.FactoryMethod { #region Product /// <summary> /// 工厂方法模式有关的模式: /// 模板方法模式,MVC模式,享元模式,备忘录模式 /// </summary> abstract class Page { } #endregion #region ConcteateProduct class SkillsPage : Page { } class EducationPage : Page { } class ExperiencePage : Page { } class IntroductionPage : Page { } class ResultsPage : Page { } class ConclusionPage : Page { } class SummaryPage : Page { } class BibiographyPage : Page { } #endregion #region Creator abstract class Document { /// <summary> /// Fields /// </summary> protected ArrayList pages = new ArrayList(); /// <summary> /// Constructor /// </summary> public Document() { this.CreatePages(); } /// <summary> /// Properties /// </summary> public ArrayList Pages { get { return pages; } } /// <summary> /// ConcreteCreator /// </summary> abstract public void CreatePages(); } #endregion #region ContreteCreator class Resume : Document { public override void CreatePages() { pages.Add(new SkillsPage()); pages.Add(new EducationPage()); pages.Add(new ExperiencePage()); } } class Report : Document { public override void CreatePages() { pages.Add(new IntroductionPage()); pages.Add(new ResultsPage()); pages.Add(new ConclusionPage()); pages.Add(new SummaryPage()); pages.Add(new BibiographyPage()); } } #endregion #region FactoryMethodApp test class FactoryMethodApp { public static void Main(string[] args) { Document[] docs = new Document[2]; //Note: constructor call Factory Method docs[0] = new Resume(); docs[1] = new Report(); //Display document pages foreach (Document item in docs) { Console.WriteLine(" " + item + "-------------"); foreach (Page page in item.Pages) { Console.WriteLine(" " + page); } } } } #endregion }
相关文章推荐
- 工厂方法(Factory Method)设计模式
- 设计模式(2)-创建型-工厂方法(Factory method)(个人笔记)
- 设计模式(三)、FACTORY METHOD(工厂方法)---对象创建型模式
- 设计模式学习-Factory Method(工厂方法)
- 设计模式(3)——工厂方法 Factory Method
- 设计模式之工厂方法(FACTORY METHOD))(二)
- 设计模式学习-Factory Method(工厂方法)
- 设计模式:简单工厂、工厂方法、抽象工厂之小结与区别
- 设计模式之工厂方法模式
- C++设计模式-工厂方法
- 设计模式之工厂方法模式
- 扩展无极限:工厂设计模式与C#扩展方法的结合使用
- 设计模式(Python)-简单工厂,工厂方法和抽象工厂模式
- C++设计模式——工厂方法及工厂方法的隐藏实现(qq空间背景的例子)
- 设计模式-工厂方法设计模式
- 设计模式之工厂方法
- 小话设计模式(二)工厂方法模式
- 23种设计模式(2):工厂方法模式
- 设计模式之—简单工厂方法(StaticFactory )-Java实现
- 设计模式_创建型模式——工厂方法