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 查看结果
例子:
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 查看结果
相关文章推荐
- 反射技术在工厂设计模式中的应用
- 【设计模式】工厂模式结合反射技术的简单应用
- C#描述设计模式(2):工厂模式学习心得及我的项目应用
- [零基础学JAVA]Java SE应用部分-36.反射机制与工厂设计模式 推荐
- C#用工厂模式、反射机制和缓存机制来设计数据访问层的接口
- C#用工厂模式、反射机制和缓存机制来设计数据访问层的接口总结
- 【c#基础7】应用框架的设计与实现学习手札之类工厂服务——反射
- 接口的应用——工厂设计模式
- 将反射应用在工厂模式上
- 反射在工厂模式上的应用
- C#设计模式之工厂模式(Factory)--03 抽象工厂模式(Abstract Factory)
- c#设计模式-工厂模式
- 设计模式C#实现(九)——工厂方法模式和简单工厂
- 设计模式的实际应用——在C#中解决单客户端窗口数据并发问题(2010-08-04)
- C#设计模式之简单工厂模式
- C#的设计模式——工厂模式
- [原创][推荐]C#设计模式-命令模式(POS收银台应用)
- c#设计模式-简单工厂
- Java设计模式之工厂模式(利用反射实现)
- Retrofit框架设计-构建者+工厂模式高级应用