设计模式系列:抽象工厂模式(Abstract Factory Pattern)

1.介绍

抽象工厂模式(Abstract Factory Pattern)隶属于设计模式中的创建型模式,用于产品族的构建。抽象工厂是所有形态的工厂模式中最为抽象和最具一般性的一种形态。

抽象工厂是指当有多个抽象角色时使用的一种工厂模式。抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体情况下,创建多个产品族中的产品对象。 

2.示例

    public class Human : IRace
    {
        public void ShowKing()
        {
            Console.WriteLine("The king of Human is Sky");
        }
    }
    public class NE : IRace
    {
        public void ShowKing()
        {
            Console.WriteLine("The king of NE is Moon");
        }
    }
    public class Orc : IRace
    {
        public void ShowKing()
        {
            Console.WriteLine("The king of Orc is Grubby");
        }
    }
    public class Undead : IRace
    {
        public void ShowKing()
        {
            Console.WriteLine("The king of Undead is Gostop");
        }
    }
    public abstract class BaseFactory
    {
        public abstract IRace CreateFirst();
        public abstract IRace CreateSecond();
        public abstract IRace CreateThird();
        public abstract IRace CreateFourth();
    }
    public class FrozenThroneFactory : BaseFactory
    {
        #region
        //public Human CreateHuman()
        //{
        //    return new Human();
        //}

        //public NE CreateNE()
        //{
        //    return new NE();
        //}

        //public Orc CreateOrc()
        //{
        //    return new Orc();
        //}

        //public Undead CreateUndead()
        //{
        //    return new Undead();
        //}
        #endregion

        public override IRace CreateFirst()
        {
            return new Human();
        }

        public override IRace CreateSecond()
        {
            return new NE();
        }

        public override IRace CreateThird()
        {
            return new Orc();
        }

        public override IRace CreateFourth()
        {
            return new Undead();
        }
    }
原文地址:https://www.cnblogs.com/vic-tory/p/12147360.html