反射机制怎么与简单工厂模式结合使用,通过反射实现在添加实现类得时候,
不需要工厂里的if判断或者switch判断
namespace Animal
{
interface ISpeak
{
void Speak();
}
public class Dog:ISpeak
{
void Speak()
{
Console.WriteLine("wang wang wang....");
}
}
public class Cat:ISpeak
{
void Speak()
{
Console.WriteLine("miao~~");
}
}
}
static void Main(string[] args)
{
Console.WriteLine("请输入您想听哪种动物叫");
string animal = Console.ReadLine();
ISpeak speakAnimal = (ISpeak)Assembly.Load("Animal").CreateInstance("Animal"+animal);
if(speakAnimal == null)
Console.WriteLine("系统暂不认识这种动物");
else
speakAnimal.Speak();
}
//当你输入"Dog"的时候打印 “wang wang wang....”
//当你输入"Cat"的时候打印 “miao~~”