Head First设计模式学习笔记:工厂方法

.NET FCL中工厂方法的实例:枚举器

  1. IEnumerable是工厂原型
  2. IEnumerator是产品原型
  3. List, ArrayList这些类都是建立产品的具体类,都实现了IEnumerable接口,有一个GetEnumerator()的方法返回IEnumerator

实现一个简单的工厂方法

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;

namespace DesignPattern.FactoryMethod
{   

    
//工厂原型
    interface IFactory
    
{
        
//建立产品的方法(这就是工厂方法?)
        IProduct CreateProduct();
    }


    
//产品原型
    interface IProduct
    
{
        
string ProductName
        
setget; }

        
int GetQty();
    }


    
//具体工厂1
    class Factory1 : IFactory
    
{
        
IFactory Members
    }


    
//具体产品1
    class Product1 : IProduct
    
{
        
IProduct Members

        
public override string ToString()
        
{
            
return string.Format("<Product 1>|ProductName={0}, GetQty={1}", ProductName, GetQty());
        }

    }


    
//具体工厂2
    class Factory2 : IFactory
    
{
        
IFactory Members

        
//具体产品2
       public class Product2 : IProduct
        
{
            
IProduct Members


            
public override string ToString()
            
{
                
return string.Format("<Product 2>|ProductName={0}, GetQty={1}", ProductName, GetQty());
            }

        }


    }


    
class Program
    
{
        
static void Main(string[] args)
        
{
            IFactory factory 
= new Factory1();

            IProduct product 
= factory.CreateProduct();

            Console.WriteLine(product);

            factory 
= new Factory2();
            product 
= factory.CreateProduct();
            Console.WriteLine(product);

            Console.ReadLine();
        }

    }


}

原文地址:https://www.cnblogs.com/rockniu/p/1224440.html