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

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

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

实现一个简单的工厂方法

 

Head First设计模式学习笔记:工厂方法 using  System;
Head First设计模式学习笔记:工厂方法
using  System.Collections.Generic;
Head First设计模式学习笔记:工厂方法
using  System.Linq;
Head First设计模式学习笔记:工厂方法
using  System.Text;
Head First设计模式学习笔记:工厂方法
using  System.Collections;
Head First设计模式学习笔记:工厂方法
Head First设计模式学习笔记:工厂方法
namespace  DesignPattern.FactoryMethod
Head First设计模式学习笔记:工厂方法
{   
Head First设计模式学习笔记:工厂方法
Head First设计模式学习笔记:工厂方法    
//工厂原型
Head First设计模式学习笔记:工厂方法
    interface IFactory
Head First设计模式学习笔记:工厂方法    
{
Head First设计模式学习笔记:工厂方法        
//建立产品的方法(这就是工厂方法?)
Head First设计模式学习笔记:工厂方法
        IProduct CreateProduct();
Head First设计模式学习笔记:工厂方法    }

Head First设计模式学习笔记:工厂方法
Head First设计模式学习笔记:工厂方法    
//产品原型
Head First设计模式学习笔记:工厂方法
    interface IProduct
Head First设计模式学习笔记:工厂方法    
{
Head First设计模式学习笔记:工厂方法        
string ProductName
Head First设计模式学习笔记:工厂方法        
setget; }
Head First设计模式学习笔记:工厂方法
Head First设计模式学习笔记:工厂方法        
int GetQty();
Head First设计模式学习笔记:工厂方法    }

Head First设计模式学习笔记:工厂方法
Head First设计模式学习笔记:工厂方法    
//具体工厂1
Head First设计模式学习笔记:工厂方法
    class Factory1 : IFactory
Head First设计模式学习笔记:工厂方法    
{
Head First设计模式学习笔记:工厂方法        
IFactory Members
Head First设计模式学习笔记:工厂方法    }

Head First设计模式学习笔记:工厂方法
Head First设计模式学习笔记:工厂方法    
//具体产品1
Head First设计模式学习笔记:工厂方法
    class Product1 : IProduct
Head First设计模式学习笔记:工厂方法    
{
Head First设计模式学习笔记:工厂方法        
IProduct Members
Head First设计模式学习笔记:工厂方法
Head First设计模式学习笔记:工厂方法        
public override string ToString()
Head First设计模式学习笔记:工厂方法        
{
Head First设计模式学习笔记:工厂方法            
return string.Format("<Product 1>|ProductName={0}, GetQty={1}", ProductName, GetQty());
Head First设计模式学习笔记:工厂方法        }

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

Head First设计模式学习笔记:工厂方法
Head First设计模式学习笔记:工厂方法    
//具体工厂2
Head First设计模式学习笔记:工厂方法
    class Factory2 : IFactory
Head First设计模式学习笔记:工厂方法    
{
Head First设计模式学习笔记:工厂方法        
IFactory Members
Head First设计模式学习笔记:工厂方法
Head First设计模式学习笔记:工厂方法        
//具体产品2
Head First设计模式学习笔记:工厂方法
       public class Product2 : IProduct
Head First设计模式学习笔记:工厂方法        
{
Head First设计模式学习笔记:工厂方法            
IProduct Members
Head First设计模式学习笔记:工厂方法
Head First设计模式学习笔记:工厂方法
Head First设计模式学习笔记:工厂方法            
public override string ToString()
Head First设计模式学习笔记:工厂方法            
{
Head First设计模式学习笔记:工厂方法                
return string.Format("<Product 2>|ProductName={0}, GetQty={1}", ProductName, GetQty());
Head First设计模式学习笔记:工厂方法            }

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

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

Head First设计模式学习笔记:工厂方法
Head First设计模式学习笔记:工厂方法    
class Program
Head First设计模式学习笔记:工厂方法    
{
Head First设计模式学习笔记:工厂方法        
static void Main(string[] args)
Head First设计模式学习笔记:工厂方法        
{
Head First设计模式学习笔记:工厂方法            IFactory factory 
= new Factory1();
Head First设计模式学习笔记:工厂方法
Head First设计模式学习笔记:工厂方法            IProduct product 
= factory.CreateProduct();
Head First设计模式学习笔记:工厂方法
Head First设计模式学习笔记:工厂方法            Console.WriteLine(product);
Head First设计模式学习笔记:工厂方法
Head First设计模式学习笔记:工厂方法            factory 
= new Factory2();
Head First设计模式学习笔记:工厂方法            product 
= factory.CreateProduct();
Head First设计模式学习笔记:工厂方法            Console.WriteLine(product);
Head First设计模式学习笔记:工厂方法
Head First设计模式学习笔记:工厂方法            Console.ReadLine();
Head First设计模式学习笔记:工厂方法        }

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

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

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

你可能感兴趣的:(first)