• 简单工厂模式


    设计模式需要认知理解并内化。较为简单并符合思维习惯的模型易于理解接受。

    故事:

    有个工厂,提供定制鞋子(休闲鞋/运动鞋)的服务。你可以定制你喜欢的鞋子。

    建模:

    简单工厂,确实就是一个很简单的工厂。

    鞋子,有运动鞋和休闲鞋。

    你是这个工厂的客户。

    类图:

    实现:

    ShoesFactory

    namespace SimpleFactory
    {
        static class ShoesFactory
        {
            public static Shoes produceShoes(string shoesType)
            {            
                Console.WriteLine("<工厂公告>客户需要的鞋子类型是:{0}\n", shoesType);
                // -- 决策点
                switch (shoesType)
                {
                    case "Leisure":
                        return new LeisureShoes();
                    case "Sport":
                        return new SportShoes();
                    default:
                        return new SportShoes();
                }
            }
        }
    }

    Shoes

    namespace SimpleFactory
    {
        class Shoes
        {
            public Shoes()
            {
                Console.WriteLine("即将生产鞋子,请稍等");
            }
        }
    }

    LeisureShoes

    namespace SimpleFactory
    {
        class LeisureShoes:Shoes
        {
            public LeisureShoes()
            {
                Console.WriteLine("生产休闲鞋");
                Console.WriteLine("休闲鞋完成");
            }
        }
    }

    SportShoes

    namespace SimpleFactory
    {
        class SportShoes:Shoes
        {
            public SportShoes()
            {
                Console.WriteLine("生产运动鞋");
                Console.WriteLine("运动鞋完成");
            }
        }
    }

    Program

    namespace SimpleFactory
    {
        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("请输入你想要的鞋子:Sport/Leisure");
                string shoesType = Console.ReadLine();
    
                Console.WriteLine("\n------进厂定制---------\n");
                Shoes shoes = ShoesFactory.produceShoes(shoesType);
                Console.WriteLine("\n-------鞋子出厂--------\n");
            }
        }
    }

    效果:

  • 相关阅读:
    使用 ant-design/pro-table
    cross-env 根据环境打包
    React 生成图片验证码组件使用
    一些常用的命令行
    react-grid-layout
    vsCode 常用快捷键(mac 版)
    mac 使用命令行,对远程服务器进行文件更新
    原生js 平滑滚动到页面的某个位置
    html2canvas 导出包含滚动条的内容
    react 中的 PureComponent
  • 原文地址:https://www.cnblogs.com/jiejue/p/2711474.html
Copyright © 2020-2023  润新知