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();
            }
        }
  • 相关阅读:
    python_day2(列表,元组,字典,字符串)
    爬取校花网美眉图
    python FTP常见用例
    mysql-调优
    mysql-事务与存储引擎
    mysql-基本命令与索引
    python基础(三)闭包、装饰器、迭代器、生成器
    Git的http与ssh配置
    python基础(二)抽象
    ssh-keygen 签名ca证书
  • 原文地址:https://www.cnblogs.com/vic-tory/p/12147360.html
Copyright © 2011-2022 走看看