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();
            }
        }
  • 相关阅读:
    远程新建分支后,本地查看不到
    Python3之HTMLTestRunner测试报告美化
    Django项目之模型增删改查操作(CRUD)
    Django项目创建数据模型(Model)
    Django项目settings.py文件基础配置
    Django项目如何使用mysql数据库
    Django常用命令介绍
    快捷到处项目依赖包到requirements.txt
    pc 弹窗橡皮筋效果(自己纪录)
    小程序图片上传预览删除(记录)
  • 原文地址:https://www.cnblogs.com/vic-tory/p/12147360.html
Copyright © 2011-2022 走看看