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();
            }
        }
  • 相关阅读:
    java 编程基础 Class对象 反射:代理模式和静态代理
    sql优化(排序)
    Mysql备份恢复
    Mysql5.7.33安装
    Networker oracle备份恢复
    Centos7 安装11.2.0.4
    spring security 自定义多种方式登录授权
    CentOS 7 安装Nginx 并配置自动启动
    Nginx 配置模板
    Alibaba cloud 版本说明
  • 原文地址:https://www.cnblogs.com/vic-tory/p/12147360.html
Copyright © 2011-2022 走看看