【C#】Creational Patterns Simple Factory Mode

简单工厂模式,顾名思义就是抽象工厂的简单版~

共有三个环节~ 分别是 抽象产品具体产品生产产品~


学习目标: 简单工厂模式的概念及实务

学习难度: ☆☆☆


using System;

namespace ConsoleApp1
{
    abstract class Game //抽象类别定义产品概念
    {
        public abstract string Name { get; set; }

        public abstract int Price { get; set; }

        public abstract void Demo();
    }

    class AOE3 : Game //描述产品的细节
    {
        public override string Name { get; set; } = "AOE3";

        public override int Price { get; set; } = 300;

        public override void Demo()
        {
            Console.WriteLine("AOE3 is Playing");
        }
    }

    static class GameFactory //工厂生产中...
    {
        public static Game GetGame(string name) //型别是Game,因为要生产Game,所以回传Game
        {
            switch (name)
            {
                case "AOE3":

                return new AOE3();

                default:

                throw new Exception("My factory doesn't' has this game") ;
            }
        }
    }

    static class MainProgram //算是Clinet端?!
    {
        public static void Main()
        {
            Game AOE3 = GameFactory.GetGame("AOE3");

            AOE3.Demo();
        }
    }
}

参考资料:

https://raychiutw.github.io/2019/%E9%9A%A8%E6%89%8B-Design-Pattern-3-%E7%B0%A1%E5%96%AE%E5%B7%A5%E5%BB%A0%E6%A8%A1%E5%BC%8F-Simple-Factory-Pattern/


<<:  【C#】计算程序的执行时间

>>:  五套最佳SoundCloud下载器--〖2022〗

Day18-Vue Router 路由设定(part1)

昨天有提到的路由今天要来做拆解,做更深入的了解。昨天提到的router/index.js设定也可以写...

Android Studio 菜鸟笔记本-Day 27-BottomNavigationView的应用

昨天介绍了BottomNavigationView的使用方法,今天我要分享使用BottomNavig...

【第二十八天 - 系统设计 介绍】

Q1. 系统设计 是什麽 在业界基本上都是团队开发专案,每个人负责实作部分功能,而 Leetcode...

Ruby解题分享--Climbing Stairs

当开始可以发现韩国女团,每个人长得都不一样时,就代表你长大了... Climbing Stairs ...

Flutter体验 Day 6-Widget State

Widget状态管理 Widget 类别的原始码上有标注 @immutable,这个标注的意思是不可...