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();
            }
        }
  • 相关阅读:
    Live2d网页看板娘
    阿里云服务器(云主机)搭建网站攻略 最新9.5一个月
    Cookie小案例
    Node搭建多人聊天室
    JS鼠标点击爱心,文字特效
    JQ根据鼠标上下移动设置导航浮窗
    JS背景网页樱花特效
    Node中怎么保持MySql一直连接不断开
    Navicat for MySQL破解版
    Windows Server 2008 R2 安装MySql,PHP
  • 原文地址:https://www.cnblogs.com/vic-tory/p/12147360.html
Copyright © 2011-2022 走看看