日期:2014-05-17  浏览次数:20733 次

C# 工厂模式 望大家 赐教
以前写代码 只考虑 方法实行,这几天开始研究模式,第一个模式 是工厂模式,下面是一个小例子,请大家看看如何改进,能够使它达到更大的可扩展性和尽量少的修改量。
代码如下:
using System;
using System.Collections.Generic;
using System.Text;

//工厂模式:new的多态跟封装,(抽象工厂,具体工厂,抽象产品,具体产品)
namespace FactoryText
{
    abstract class Produce
    {
        public abstract void productName();
    }

    //具体产品
    class productA : Produce
    {
        public override void productName()
        {
            Console.WriteLine("product A");
        }
    }

    class productB : Produce
    {
        public override void productName()
        {
            Console.WriteLine("product B");
        }
    }

    //抽象工厂
    abstract class abstructFactory
    {
        public abstract Produce produce(string produceType);
    }

    //具体工厂
    class Factory1 : abstructFactory
    {
        public override Produce produce(string produceType)
        {
            Produce result = null;
            try
            {
                Type type = Type.GetType(produceType,true);
                result = (Produce) Activator.CreateInstance(type);
 
            }
            catch (TypeLoadException e) 
            {
                 Console.WriteLine("找不到你的类型:"+e.Message);
            }

            return result;
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            abstructFactory text = new Factory1();
            text.produce("FactoryText.productA").produc