C#简单工厂模式的实现

cs 复制代码
using System.Diagnostics.Metrics;
using System.Runtime.InteropServices;
using static 手写工厂模式.Program;

namespace 手写工厂模式
{
    internal class Program
    {
        public interface eats {
            void eat();
        }//定义了一个接口
        public class rice : eats
        {
            public void eat() {
                Console.WriteLine("吃米饭");
            }
        }//继承接口并实现方法
        public class pig : eats
        {
            public void eat()
            {
                Console.WriteLine("吃猪猪");
            }
        }//继承接口并实现方法
        public class bird : eats
        {
            public void eat()
            {
                Console.WriteLine("吃小鸟");
            }
        }//继承接口并实现方法
        public class TransportFactory//创建一个工厂
        {
            public static eats GetTransport(string type)//eats 是指定的返回类型,表示该方法返回一个实现了 eats 接口的对象。
            {
                switch (type.ToLower())
                {
                    case "rice":
                        return new rice();
                    case "pig":
                        return new pig();
                    case "bird":
                        return new bird();
                    default:
                        throw new ArgumentException($"不支持该类型:{type}");//如果传入了没有的就会报错
                }
            }
        }
        static void Main(string[] args)
            {
            eats transport = TransportFactory.GetTransport("rice");//这句是必须得它声明了transport的类型为eats
            transport.eat();
            transport = TransportFactory.GetTransport("pig");//因为上面声明了transport的类型所以这里可以直接用
            transport.eat();
        }
        }
    }

输出

相关推荐
逆境不可逃15 天前
【从零入门23种设计模式01】创建型之工厂模式(简单工厂+工厂方法+抽象工厂)
java·spring·设计模式·简单工厂模式·工厂方法模式·抽象工厂模式·工厂模式
知无不研22 天前
c++的设计模式(常用)
c++·观察者模式·单例模式·设计模式·简单工厂模式
zVGKKTvT25 天前
增程汽车/插电式串联混动汽车Matlab/Simulink软件模型,动力性、经济性仿真计算 1
简单工厂模式
浮生如梦_1 个月前
C# 窗体工厂类 - 简单工厂模式演示案例
计算机视觉·c#·视觉检测·简单工厂模式
她说..1 个月前
策略模式+工厂模式实现订单校验功能
java·spring boot·java-ee·简单工厂模式·策略模式
她说..1 个月前
策略模式+工厂模式实现单接口适配多审核节点
java·spring boot·后端·spring·简单工厂模式·策略模式
hexionly1 个月前
演示工厂模式和策略模式的基本用法
java·简单工厂模式·策略模式·开闭原则
进击的小头1 个月前
创建型模式:简单工厂模式(C语言实现)
c语言·开发语言·简单工厂模式
Geoking.2 个月前
简单工厂模式介绍
设计模式·简单工厂模式
西幻凌云2 个月前
认识设计模式——工厂模式
c++·设计模式·简单工厂模式·抽象工厂模式·工厂模式