首页 > 代码库 > DesignPattern_Creational_AbstractFactory

DesignPattern_Creational_AbstractFactory

using System.Reflection;namespace DesignPattern.Creational.AbstractFactory{    public interface IProductA { }    public interface IProductB { }    public class Product1A : IProductA { }    public class Product1B : IProductB { }    public class Product2A : IProductA { }    public class Product2B : IProductB { }    public abstract class AbstractFactory    {        public static AbstractFactory ChooseFactory(string name)        {            return Assembly.Load("DesignPattern.Creational")                .CreateInstance(string.Format("DesignPattern.Creational.AbstractFactory.{0}", name)) as AbstractFactory;        }        public abstract IProductA GetProductA();        public abstract IProductB GetProductB();    }    public class Factory1 : AbstractFactory    {        public override IProductA GetProductA()        {            return new Product1A();        }        public override IProductB GetProductB()        {            return new Product1B();        }    }    public class Factory2 : AbstractFactory    {        public override IProductA GetProductA()        {            return new Product2A();        }        public override IProductB GetProductB()        {            return new Product2B();        }    }}

 

DesignPattern_Creational_AbstractFactory