阿牛 - 专注.NET开发

如果梦想与实现之间有一道不可逾越的鸿沟,那么“执行力”就是跨越这道鸿沟的桥梁。

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  225 随笔 :: 4 文章 :: 100 评论 :: 21万 阅读

.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();
        }

    }


}

复制代码
posted on   阿牛-专注金融行业开发  阅读(389)  评论(0编辑  收藏  举报
编辑推荐:
· ASP.NET Core - 日志记录系统(二)
· .NET 依赖注入中的 Captive Dependency
· .NET Core 对象分配(Alloc)底层原理浅谈
· 聊一聊 C#异步 任务延续的三种底层玩法
· 敏捷开发:如何高效开每日站会
阅读排行:
· 终于决定:把自己家的能源管理系统开源了!
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(一):从.NET IoT入
· C#实现 Winform 程序在系统托盘显示图标 & 开机自启动
· ASP.NET Core - 日志记录系统(二)
· 实现windows下简单的自动化窗口管理
点击右上角即可分享
微信分享提示