首页 > 代码库 > Factory Method(工厂方法模式)

Factory Method(工厂方法模式)

  1. using System;  
  2.   
  3. namespace FactoryMethod  
  4. {  
  5.     /// <summary>  
  6.     /// MainApp startup class for Structural  
  7.     /// Factory Method Design Pattern.  
  8.     /// </summary>  
  9.     class MainApp  
  10.     {  
  11.         /// <summary>  
  12.         /// Entry point into console application.  
  13.         /// </summary>  
  14.         static void Main()  
  15.         {  
  16.             // An array of creators  
  17.             Creator[] creators = new Creator[2];  
  18.   
  19.             creators[0] = new KFC_Creator();  
  20.             creators[1] = new MD_Creator();  
  21.   
  22.             // Iterate over creators and create products  
  23.             foreach (Creator creator in creators)  
  24.             {  
  25.                 Product product = creator.FactoryMethod();  
  26.                 Console.WriteLine("Created {0}",product.GetType().Name);  
  27.             }  
  28.   
  29.             // Wait for user  
  30.             Console.ReadKey();  
  31.         }  
  32.     }  
  33.   
  34.     /// <summary>  
  35.     /// The ‘Product‘ abstract class  
  36.     /// </summary>  
  37.     abstract class Product  
  38.     {  
  39.     }  
  40.   
  41.     /// <summary>  
  42.     /// A ‘ConcreteProduct‘ class  
  43.     /// </summary>  
  44.     class KFC_Chips : Product  
  45.     {  
  46.     }  
  47.   
  48.     /// <summary>  
  49.     /// A ‘ConcreteProduct‘ class  
  50.     /// </summary>  
  51.     class MD_Chips : Product  
  52.     {  
  53.     }  
  54.   
  55.     /// <summary>  
  56.     /// The ‘Creator‘ abstract class  
  57.     /// </summary>  
  58.     abstract class Creator  
  59.     {  
  60.         public abstract Product FactoryMethod();  
  61.     }