设计模式学习--抽象工厂

    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());

  

posted on 2014-12-25 13:54  荆小轲  阅读(97)  评论(0编辑  收藏  举报

导航