使用反射动态创建对象实例是实现抽象工厂的基础,也是实现抽象工厂的核心技术,通过它,可以动态创建一个你想要的对象,从而实现程序间的松耦合。
using System;
using System.Reflection;
namespace TestReflection
...{
class Program
...{
static void Main(string[] args)
...{
string s = "TestReflection.ChineseName";
//创建类型实例
IName cName = (IName)Assembly.Load("TestReflection").CreateInstance(s);
cName.ShowName();
Console.ReadLine();
}
}
//声明一个接口,它有一个显示"名字"的功能
interface IName
...{
void ShowName();
}
//实现接口,显示中国名字
class ChineseName : IName
...{
public void ShowName()
...{
Console.WriteLine("我叫杰克。");
}
}
//实现接口,显示英文名字
class EnglishName : IName
...{
public void ShowName()
...{
Console.WriteLine("My name is Jack.");
}
}
}
using System.Reflection;
namespace TestReflection
...{
class Program
...{
static void Main(string[] args)
...{
string s = "TestReflection.ChineseName";
//创建类型实例
IName cName = (IName)Assembly.Load("TestReflection").CreateInstance(s);
cName.ShowName();
Console.ReadLine();
}
}
//声明一个接口,它有一个显示"名字"的功能
interface IName
...{
void ShowName();
}
//实现接口,显示中国名字
class ChineseName : IName
...{
public void ShowName()
...{
Console.WriteLine("我叫杰克。");
}
}
//实现接口,显示英文名字
class EnglishName : IName
...{
public void ShowName()
...{
Console.WriteLine("My name is Jack.");
}
}
}