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();
        }
        }
    }

输出

相关推荐
患得患失9498 天前
【设计模式】工厂模式详解-----简单工厂模式、工厂方法模式、抽象工厂模式
设计模式·简单工厂模式·工厂方法模式
智想天开13 天前
工厂方法模式、简单工厂模式与抽象工厂模式的对比
简单工厂模式·工厂方法模式·抽象工厂模式
牵牛老人24 天前
C++设计模式-简单工厂模式:从原理、应用、实践指南与常见问题和解决方案深度解析
c++·设计模式·简单工厂模式
撒呼呼1 个月前
设计模式 - 工厂模式 精准梳理&精准记忆
java·设计模式·简单工厂模式·工厂方法模式·抽象工厂模式·设计规范
钰爱&1 个月前
【Qt】MVC设计模式
c++·qt·单例模式·设计模式·mvc·简单工厂模式
bing_1581 个月前
简单工厂模式 (Simple Factory Pattern) 在Spring Boot 中的应用
spring boot·后端·简单工厂模式
TT-Kun1 个月前
设计模式 之 工厂模式(简单工厂模式、工厂方法模式、抽象工厂模式)(C++)
设计模式·简单工厂模式·工厂方法模式
老朱佩琪!1 个月前
在Unity中用简单工厂模式模拟原神中的元素反应
unity·简单工厂模式
Cikiss2 个月前
「全网最细 + 实战源码案例」设计模式——简单工厂模式
java·后端·设计模式·简单工厂模式
大包菜 cc3 个月前
使用工厂+策略模式实现去除繁琐的if else
简单工厂模式·策略模式