zoukankan      html  css  js  c++  java
  • 工厂方法模式

    /// <summary>
    /// FPC抽象类
    /// </summary>
    public abstract class FPC
    {
        /// <summary>
        /// FPC生产抽象方法
        /// </summary>
        public abstract void Produce();
    }
    /// <summary>
    /// 生产GTL类
    /// </summary>
    public class GTL : FPC
    {
        public override void Produce()
        {
            Console.WriteLine("GTL");
        }
    }
    /// <summary>
    /// 生产GBL类
    /// </summary>
    public class GBL : FPC
    {
        public override void Produce()
        {
            Console.WriteLine("GBL");
        }
    }
    /// <summary>
    /// 生产GTS类
    /// </summary>
    public class GTS : FPC
    {
        public override void Produce()
        {
            Console.WriteLine("GTS");
        }
    }
    /// <summary>
    /// FPC抽象工厂类
    /// </summary>
    public abstract class CreateFPC
    {
        /// <summary>
        /// FPC工厂方法
        /// </summary>
        /// <returns></returns>
        public abstract FPC ProduceFPC();
    }
    /// <summary>
    /// 生产GTL工厂类
    /// </summary>
    public class CreateGTL : CreateFPC
    {
        //负责生产GTL
        public override FPC ProduceFPC()
        {
            return new GTL();
        }
    }
    /// <summary>
    /// 生产GBL工厂类
    /// </summary>
    public class CreateGBL : CreateFPC
    {
        /// <summary>
        /// 负责生产GBL
        /// </summary>
        /// <returns></returns>
        public override FPC ProduceFPC()
        {
            return new GBL();
        }
    }
    /// <summary>
    /// 生产GTS工厂类
    /// </summary>
    public class CreateGTS : CreateFPC
    {
        /// <summary>
        /// 负责生产GTS
        /// </summary>
        /// <returns></returns>
        public override FPC ProduceFPC()
        {
            return new GTS();
        }
    }

    调用:

    CreateFPC a1a = new CreateGTL();
    FPC fpca1a = a1a.ProduceFPC();
    fpca1a.Produce();
  • 相关阅读:
    适用于 Laravel 的内部收单模块
    适用于 Laravel API 的签名看守器
    适用于 Laravel 的百度搜索推送
    适用于Yii2的千万级数据秒分页
    PostMan 代理的一个大坑
    PHP 各种金融利息的计算方法
    软件工程之UML建模课
    Windows 通过 cmd 得到域名的dns
    在windows下,通过git-bash里的ssh,远程登陆虚拟机里的linux
    Java常见缩写
  • 原文地址:https://www.cnblogs.com/genesis/p/5153361.html
Copyright © 2011-2022 走看看