当前位置: 首页 > news >正文

C#简单工厂模式的实现

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的类型为eatstransport.eat();transport = TransportFactory.GetTransport("pig");//因为上面声明了transport的类型所以这里可以直接用transport.eat();}}}

 

输出 

相关文章:

C#简单工厂模式的实现

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.…...

.NET 设计模式—观察者模式(Observer Pattern)

简介 在.NET中,观察者模式是一种设计模式,它允许对象之间进行一对多的依赖关系。当一个对象的状态发生变化时,所有依赖于它的对象都会收到通知并自动更新。这种模式在事件驱动的设计中非常常见。 在.NET中实现观察者模式,通常涉…...

EasyUI Jquery 学习笔记 ——DataGrid(数据网格)与 Tree(树)详细版

1. DataGrid(数据网格)与 Tree(树) 1.1 Datagrid 数据网格 扩展自 $.fn.panel.defaults。通过 $.fn.datagrid.defaults 重写默认的 defaults。 数据网格(datagrid)以表格格式显示数据,并为选择、排序、分组和编辑数据提供了丰富的支持。数据网格(datagrid)的设计目…...

JAVA发票验真接口、票据ocr、数电票在线查验真伪

发票验真接口,,实时联网核验发票真伪,查验一致返回全票面信息,支持查验增值税发票管理系统开具的发票,支持批量核验发票,翔云发票查验送发票识别,助您摆脱手动输入繁琐,提升工作效率。 发票查验接口适用于银行、金融、代理记账等发票管理数量…...

el-date-picker调用回车事件

elementui的el-date-picker想要调用回车事件&#xff1a; <el-date-pickerv-model"state.date"type"date"value-format"YYYY-MM-DD HH:mm:ss"placeholder"选择日期"clearablekeydown.enter"handleDown"></el-date-…...

js学习总结

这里写目录标题 前情提要JavaScript书写位置1. 内部javaScript (不常用)2. 外部javaScript (常用)3.内联javaScript (常用) js中的输入和输出输出语法1. document.write()2. alert()3. console.log() 输入语法prompt() 前情提要 1. 在javaScript中的 分号 是可以省略的JavaScr…...

MES实施优势有哪些?MES制造执行系统的主要内容

各个行业之间也开始进入到了激烈的竞争当中&#xff0c;很多企业为了能够有效提升企业竞争力&#xff0c;都会通过提升自身实力的方式来提升竞争力。一些制造业也会在经营过程当中使用到MES系统&#xff0c;那么&#xff0c;mes系统的优势有哪些呢&#xff1f; 1、优化企业现场…...

ChatGPT 和 Elasticsearch:使用 Elastic 数据创建自定义 GPT

作者&#xff1a;Sandra Gonzales ChatGPT Plus 订阅者现在有机会创建他们自己的定制版 ChatGPT&#xff0c;称为 GPT&#xff0c;这替代了之前博客文章中讨论的插件。基于本系列的第一部分的基础 —— 我们深入探讨了在 Elastic Cloud 中设置 Elasticsearch 数据和创建向量嵌…...

废品回收 小程序+APP

用户实名认证、回收员实名认证、后台审核、会员管理、回收员管理、订单管理、提现管理、地图、档案管理。 支持&#xff0c;安卓APP、苹果APP、小程序 流程&#xff1a; 一、用户端下单&#xff0c;地图选择上门位置、填写具体位置、废品名称、预估重量、选择是企业废旧、家…...

下载好了annaconda,但是在创建一个新的Conda虚拟环境报错

文章目录 问题描述&#xff1a;解决方案1.生成一个配置文件 问题总结 问题描述&#xff1a; ProxyError(MaxRetryError(“HTTPSConnectionPool(host‘repo.anaconda.com’, port443): Max retries exceeded with url: /pkgs/pro/win-64/repodata.json.bz2 (Caused by ProxyErr…...

如何安装MacOS的虚拟机?mac安装虚拟机的步骤 虚拟机安装MacOS VMware Fusion和Parallels Desktop19

要在Mac上运行MacOS的虚拟机&#xff0c;常用的方法是使用虚拟化软件如VMware Fusion或Parallels Desktop。 以下是安装MacOS的虚拟机的主要步骤&#xff1a; 1. 检查系统要求&#xff1a;确定您的Mac硬件和操作系统满足安装要求。您需要一台具备足够性能的Mac&#xff0c;并…...

Flutter 中 AutomaticKeepAliveClientMixin 的介绍及使用

在 Flutter 中&#xff0c;当你在一个页面中滑动列表或者进行其他一些操作时&#xff0c;如果你返回到该页面&#xff0c;可能会发现之前的状态已经丢失了。这在某些情况下可能是不可取的&#xff0c;特别是当你想要保留之前的状态&#xff0c;而不是每次都重新加载页面时。 为…...

注意力机制篇 | YOLOv8改进之清华开源ACmix:自注意力和CNN的融合 | 性能速度全面提升

前言:Hello大家好,我是小哥谈。混合模型ACmix将自注意力机制和卷积神经网络进行整合,使其同时具有自注意力机制和卷积神经网络的优点。这是清华大学、华为和北京人工智能研究院共同发布在2022年CVPR中的论文。ACmix结合了自注意力机制和卷积神经网络的优势,以提高模型的性能…...

Go语言支持重载吗?如何实现重写?

Go语言不支持传统意义上的函数和方法重载。在Go语言中&#xff0c;函数名或方法名不能相同但参数列表不同&#xff0c;因为这会导致编译错误。 然而&#xff0c;可以通过方法重写&#xff08;override&#xff09;来实现类似的功能。方法重写是指在子类中定义一个与父类同名的…...

Spring中基于事件监听驱动 和 线程池的异步任务

文章目录 事件监听驱动 与 异步事件源ApplicationContextAware接口 发布事件事件实体监听事件实现异步注入綫程池 事件驱动机制&#xff0c;与MQ消息队列比较 事件监听驱动 与 异步 事件监听驱动优点&#xff1a;解耦&#xff0c;将 事件和业务进行解耦&#xff0c;通过Asyc注解…...

C++ 优先级队列用法详解与模拟实现

文章目录 C 优先级队列用法与模拟实现介绍用法头文件1.创建优先级队列priority_queue 2. 插入元素push 3. 删除元素pop 访问顶部元素top 检查优先级队列的大小size 检查优先级队列是否为空empty 模拟实现 C 优先级队列用法与模拟实现 介绍 优先级队列&#xff08;Priority Qu…...

Linux进阶之旅:深入探索Linux的高级功能

文章目录 Linux进阶之旅:深入探索Linux的高级功能1. Shell脚本编程2. 进程管理3. 网络管理4. 文本处理5. 系统监控6. 总结 Linux进阶之旅:深入探索Linux的高级功能 在上一篇博客中,我们对Linux操作系统进行了入门级的介绍,包括Linux的特点、发行版、安装方法以及基本使用。接下…...

【Java】内存可见性问题是什么?

文章目录 内存模型内存可见性解决方案volatile 内存模型 什么是JAVA 内存模型&#xff1f; Java Memory Model (JAVA 内存模型&#xff09;是描述线程之间如何通过内存(memory)来进行交互。 具体说来&#xff0c; JVM中存在一个主存区&#xff08;Main Memory或Java Heap Mem…...

Guava里一些比较常用的工具

随着java版本的更新提供了越来越多的语法和工具来简化日常开发&#xff0c;但是我们一般用的比较早的版本所以体验不到。这时就用到了guava这个包。guava提供了很多方便的工具方法&#xff0c;solar框架就依赖了guava的16.0.1版本&#xff0c;这里稍微介绍下。 一、集合工具类…...

在windows系统中【.gz.tar】和【.whl】文件分别应该怎么下载到conda的某个虚拟环境中

在 Windows 系统中&#xff0c;你可以按照以下步骤将 .gz.tar 和 .whl 文件下载到 Conda 的某个虚拟环境中&#xff1a; 激活虚拟环境&#xff1a;打开 Anaconda Prompt 或者命令行窗口&#xff0c;使用以下命令激活你想要安装文件的虚拟环境&#xff1a; conda activate <虚…...

Rust - 数据类型

Rust 是静态编译语言&#xff0c;在编译时必须知道所有变量的类型。 基于使用的值&#xff0c;编译器通常能推断出它的具体类型&#xff0c;但如果可能的类型比较多&#xff0c;例如把String转换为整数的parse方法&#xff0c;就必须添加类型的标注&#xff0c;否则编译会报错…...

基于springboot实现洗衣店订单管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现洗衣店订单管理系统演示 摘要 随着信息互联网信息的飞速发展&#xff0c;无纸化作业变成了一种趋势&#xff0c;针对这个问题开发一个专门适应洗衣店业务新的交流形式的网站。本文介绍了洗衣店订单管理系统的开发全过程。通过分析企业对于洗衣店订单管理系统…...

Java基础知识总结(53)

&#xff08;1&#xff09;集合框架概述 Java集合大致分为List、Set、Map和Queue Collection是一个顶级接口&#xff0c;其子接口有&#xff0c;List、Set、Queue List:有序&#xff08;存放和取出顺序是一致的&#xff09;、有索引、可重复 Set:无序、无索引、不可重复 &…...

196算法之谜在 JSP 中使用内置对象 request 获取 form 表单的文本框 text 提交的数据。

(1&#xff09;编写 inputNumber . jsp &#xff0c;该页面提供一个 form 表单&#xff0c;该 form 表单提供一个文本框 text &#xff0c;用于用户输入一个正整数&#xff0c;用户在 form 表单中输入的数字&#xff0c;单击 submit 提交键将正整数提交给 huiwenNumber . jsp 页…...

初识责任链模式--一起学习吧之数据库

一、定义 责任链模式是一种对象行为型模式&#xff0c;用于处理请求发送者和多个请求处理者之间的耦合问题。在这种模式中&#xff0c;请求的处理者通过前一对象记住其下一个对象的引用而连成一条链。当有请求发生时&#xff0c;请求会沿着这条链传递&#xff0c;直到有对象处…...

解决Xshell登录云服务器的免密码和云服务器生成子用户问题

Xshell登录云服务器的免密码问题 前言一、Xshell登录云服务器的免密码操作实践 二、centos创建用户创建用户实操删除用户更改用户密码直接删除子用户 前言 Xshell登录云服务器免密码问题的解决方案通常涉及使用SSH密钥对。用户生成一对密钥&#xff08;公钥和私钥&#xff09;…...

webRtc生产环境实用方法

最近做了几个项目发现多个项目反反复复会出现几个高频的需求&#xff0c; 都依赖于获取系统采集设备和指定设备id获取媒体流&#xff1b;为了不在反复书写总结2个公用方法&#xff1b; 检索当前系统所有可用设备 /*** 检索当前系统所有可用设备* returns {* audioInputOption…...

Java String、StringBuffer

构造方法 通过字符数组构造,结果abc 通过字节数组构造&#xff0c;结果abc //把字符串转化为字节数组 当前代码编译环境为UTF-8&#xff0c;出现异常时&#xff0c;直接抛出异常即可。mainthrows UnsupportedEncodingException 编译环境为UTF-8&#xff0c;但是运用gb2312这个…...

LangChain调用tool集的原理剖析(包懂)

一、需求背景 在聊天场景中&#xff0c;针对用户的问题我们希望把问题逐一分解&#xff0c;每一步用一个工具得到分步答案&#xff0c;然后根据这个中间答案继续思考&#xff0c;再使用下一个工具得到另一个分步答案&#xff0c;直到最终得到想要的结果。 这个场景非常匹配la…...

如何正确使用数字化仪前端信号调理?(一)

一、前言 板卡式的数字转换器和类似测量仪器&#xff0c;比如图1所示的德思特TS-M4i系列&#xff0c;都需要为各种各样的特性信号与内部模数转换器&#xff08;ADC&#xff09;的固定输入范围做匹配。 图1&#xff1a;德思特TS-M4i系列高速数字化仪&#xff0c;包括2或4通道版…...

wordpress商业主题分享/武汉关键词seo排名

主要内容 线程概念 创建线程的两个方法 实现runnable()接口 重写Thread类中方法 两种方法的区别创建线程与方法调用区别 停止线程的两个方法 interrupt()强制打断 引入变量boolean flag 控制Thread类常用方法 sleep() interrupt() join() yield() setPriority(int newPriority)…...

广州番禺服装网站建设/黑帽seo培训

...

全国定制网站服务器云主机/网站如何做seo排名

把开发过程比较好的一些内容做个珍藏&#xff0c;下边内容是关于打开ios设备的闪光灯的内容。 (void) turnTorchOn: (bool) on { Class captureDeviceClass NSClassFromString(“AVCaptureDevice”); if (captureDeviceClass ! nil) { if ([device hasTorch] && [de…...

网站模板用什么做/品牌推广方案包括哪些

前言 流式计算对稳定性敏感&#xff0c;所以我们在编写作业时一定会做好防御性编程&#xff0c;如各种判空、边界条件、安全的类型转换、格式判断、异常捕获等。但是墨菲定律说得好&#xff1a; Anything that can go wrong will go wrong. 换言之&#xff0c;我们写再多的防御…...

温江建设局备案网站/如何进行搜索引擎优化 简答案

cdn引入(正常) 通过cdn方式引入是不会报错的。 src引入&#xff08;报错&#xff09; 然后我用npm下载了bootstrap和jquery&#xff0c;使用src方式引入居然报错了。 原因 当引入jQuery和bootstrap文件时会报错的原因是&#xff1a;electron 的 Renderer 端因为注入了 No…...

搜索别人的网站是带logo的请问怎么做的/南京响应式网站建设

有 时当 使用 一个 包含 多 个 参 数 的 方 法 时 &#xff0c; 由 于参 数 过 多 会 导 致 可 读 性 严 重 下 降 &#xff0c; 如 &#xff1a; 有 时当 使用 一个 包含 多 个 参 数 的 方 法 时 &#xff0c; 由 于参 数 过 多 会 导 致 可 读 性 严 重 下 降 &#xff0c; …...