zoukankan      html  css  js  c++  java
  • 设计模式系列:抽象工厂模式(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();
            }
        }
  • 相关阅读:
    从U盘安装Windows 7 / Vista / 2008
    Windows 7 Enterprise 微软官方90天评估序列号
    Windows 2008 Vista 安装sp2后释放C盘空间
    Windows 7 一年试用批处理
    Windows 2008 R2 试用版序列号
    又出来一个OEM的序列号
    查看 windows 7 激活信息的相关命令
    最新一组OEM Key
    Windows 7 / Vista 分区问题
    MSN 9 多开设置
  • 原文地址:https://www.cnblogs.com/vic-tory/p/12147360.html
Copyright © 2011-2022 走看看