设计模式学习--抽象工厂
public class AbstractFactory<I> { public static I GetInstance(string nameSpace, string className) { Assembly a = Assembly.Load(nameSpace); I t = (I)a.CreateInstance(nameSpace + "." + className); return t; } }
public interface IAnimal { string Shout(); }
class Cattle : IAnimal { public string Shout() { return "哞"; } }
public class Sheep : IAnimal { public string Shout() { return "咩"; } }
IAnimal sheep = AbstractFactory<IAnimal>.GetInstance("ConsoleApplication1", "Sheep"); Console.WriteLine(sheep.Shout()); IAnimal cattle = AbstractFactory<IAnimal>.GetInstance("ConsoleApplication1", "Cattle"); Console.WriteLine(cattle.Shout());