初中上哪个网站找题做,白山市城乡建设局网站,平面设计工作好找吗,wap游戏引擎题目#xff1a; 使用 C# 编码#xff08;涉及类、接口、委托等关键知识点#xff09;#xff0c;实现对周黑鸭工厂的产品生产统一管理#xff0c;主要产品包括鸭脖和鸭翅。武汉工厂能生生产鸭脖和鸭翅#xff0c;南京工厂只能生产鸭翅#xff0c;长沙工厂只能生产鸭脖。…题目 使用 C# 编码涉及类、接口、委托等关键知识点实现对周黑鸭工厂的产品生产统一管理主要产品包括鸭脖和鸭翅。武汉工厂能生生产鸭脖和鸭翅南京工厂只能生产鸭翅长沙工厂只能生产鸭脖。具体要求如下 定义接口 IProductionFactory包含生产鸭脖和鸭翅的方法。定义类 WuhanFactory、NanjingFactory、ChangshaFactory 分别实现接口 IProductionFactory用于具体的生产工厂。使用委托 ProductionDelegate 定义生产委托。在 Main 函数中创建不同工厂的实例并通过生产委托进行生产。 解析 接口定义IProductionFactory接口定义了工厂可能会执行的两个方法ProduceDuckNeck和ProduceDuckWing。 工厂实现每个工厂类WuhanFactoryNanjingFactoryChangshaFactory都实现了IProductionFactory接口并根据具体的生产方法的不同调用不同的接口方法。例如WuhanFactory可以生产鸭脖和鸭翅而NanjingFactory只能生产鸭翅。 委托定义ProductionDelegate委托类型用于将工厂对象作为参数并调用其生产方法。这样委托可以作为生产方法的引用从而在不同的工厂上执行相同的操作。 异常处理而对于不做某些接口方法的工厂类例如南京工厂不支持生产鸭脖则对应的方法会抛出NotSupportedException。在调用这些方法时代码通过try-catch块捕获并处理这些异常。 委托调用在Main方法中委托被用来调用工厂的生产方法。将委托指向不同的工厂对象而无需修改调用代码就可以在不同的工厂中选择生产鸭脖或者鸭翅。 代码
using System;
namespace ZhouHeiYa
{//定义接口public interface IProductionFactory{void ProduceDuckNeck();void ProduceDuckWing();}//定义工厂类public class WuhanFactory : IProductionFactory{public void ProduceDuckNeck(){Console.WriteLine(武汉工厂生产鸭脖);}public void ProduceDuckWing(){Console.WriteLine(武汉工厂生产鸭翅);}}public class NanjingFactory : IProductionFactory{public void ProduceDuckNeck(){throw new NotSupportedException(南京工厂不能生产鸭脖);}public void ProduceDuckWing(){Console.WriteLine(南京工厂生产鸭翅);}}public class ChangshaFactory : IProductionFactory{public void ProduceDuckNeck(){Console.WriteLine(长沙工厂生产鸭脖);Console.ReadLine();}public void ProduceDuckWing(){throw new NotSupportedException(长沙工厂不能生产鸭翅);}}public delegate void ProductionDelegate(IProductionFactory factory);//定义生产委托internal class Program{static void Main(string[] args){// 创建不同工厂实例 IProductionFactory wuhanFactory new WuhanFactory();IProductionFactory nanjingFactory new NanjingFactory();IProductionFactory changshaFactory new ChangshaFactory();// 创建生产委托 ProductionDelegate duckneck ProduceDuckNeck;ProductionDelegate duckwing ProduceDuckWing;// 使用委托调用工厂生产鸭脖和鸭翅 duckneck(wuhanFactory);duckwing(wuhanFactory);duckwing(nanjingFactory);duckneck(changshaFactory);try{duckneck(nanjingFactory);}catch (NotSupportedException ex){Console.WriteLine(ex.Message);}try{duckwing(changshaFactory);}catch (NotSupportedException ex){Console.WriteLine(ex.Message);}}// 生产鸭脖的委托方法 static void ProduceDuckNeck(IProductionFactory factory){factory.ProduceDuckNeck();}// 生产鸭翅的委托方法 static void ProduceDuckWing(IProductionFactory factory){factory.ProduceDuckWing();}}}