您的位置:首页 > 编程语言 > C#

C# 反射在工厂设计模式中的应用

2008-11-10 11:38 411 查看
利用设计模式可以使我们的代码更灵活,更容易扩展,更容易维护。各种面向对象的程序设计语言都提供了基本相同的机制:比如类、继承、派生、多态等等。但是又有各自的特色,c# 中的反射机制便是一个很重要的工具,好好地利用就可以在实际中发挥很大的作用。

例子:

using System;

namespace Factory

{

public interface IFruit

{

}

public class Orange : IFruit

{

public Orange()

{

Console.WriteLine("An orange is got!");

}

}

public class Apple : IFruit

{

public Apple()

{

Console.WriteLine("An apple is got!");

}

}

public class FruitFactory

{

private static FruitFactory _instance = new FruitFactory();

public static FruitFactory Instance

{

get { return _instance; }

}

public IFruit MakeFruit(string Name)

{

IFruit MyFruit = null;

try

{

Type type = Type.GetType(Name, true);

MyFruit = (IFruit)Activator.CreateInstance(type);

}

catch (TypeLoadException e)

{

Console.WriteLine("I dont know this kind of fruit,exception caught - {0}", e.Message);

}

return MyFruit;

}

}

public class Test

{

static void Main()

{

string FruitName = Console.ReadLine();

FruitFactory.Instance.MakeFruit("Factory." + FruitName);

}

}

}

运行:

输入: Apple 查看结果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: