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

菏泽网站建设谁最出名青岛seo排名公司

菏泽网站建设谁最出名,青岛seo排名公司,山水人家装饰公司,wordpress 新建表插件文章目录 1. 作业内容2. 设计思路分析与难点3. 代码实现3.1 接口定义3.2 工厂类实现3.3 委托和事件3.4 主函数3.5 代码运行结果 4. 代码地址5. 总结&改进思路6. 阅读参考 1. 作业内容 使用 C# 编码(涉及类、接口、委托等关键知识点),实现…

文章目录

  • 1. 作业内容
  • 2. 设计思路分析与难点
  • 3. 代码实现
    • 3.1 接口定义
    • 3.2 工厂类实现
    • 3.3 委托和事件
    • 3.4 主函数
    • 3.5 代码运行结果
  • 4. 代码地址
  • 5. 总结&改进思路
  • 6. 阅读参考


1. 作业内容

  使用 C# 编码(涉及类、接口、委托等关键知识点),实现对周黑鸭工厂的产品生产统一管理,主要产品包括鸭脖和鸭翅。武汉工厂能生生产鸭脖和鸭翅,南京工厂只能生产鸭翅,长沙工厂只能生产鸭脖。具体要求如下:

  • 定义接口 IProductionFactory,包含生产鸭脖和鸭翅的方法。
  • 定义类 WuhanFactoryNanjingFactoryChangshaFactory 分别实现接口 IProductionFactory,用于具体的生产工厂。
  • 使用委托 ProductionDelegate 定义生产委托。
  • Main 函数中,创建不同工厂的实例,并通过生产委托进行生产。

2. 设计思路分析与难点

  在面向对象编程中,接口定义了方法的规范,委托则允许在运行时选择具体的方法执行,这两者同时使用,使得不同的工厂类可以根据需要实现这些方法,增强了程序的灵活性和扩展性,提高了代码的动态性。总体上讲,该系统的设计围绕接口和委托展开。
  如何处理工厂生产能力的差异性是一个较为棘手的问题,例如,南京工厂无法生产鸭翅。我们需要一种机制来优雅地处理不支持的生产操作。
  我们利用接口方法的实现来体现生产能力的差异性,在不支持的方法中抛出NotImplementedException异常。这确保了程序在尝试执行不支持的操作时会清楚地报错,使得错误处理更加明确。
  如图所示:

  在这里只是简单地抛出异常并且报错,并不去继续其他处理。

3. 代码实现

3.1 接口定义

interface IProductionFactory
{
void ProduceNeck();
void ProduceWing();
}

  IProductionFactory包含两个方法:ProduceNeck() ProduceWing()。这两个方法分别代表生产鸭脖和鸭翅的能力。

3.2 工厂类实现

class WuhanFactory : IProductionFactory
{public void ProduceNeck() {Console.WriteLine("Wuhan Factory produce duck neck.");}public void ProduceWing() {Console.WriteLine("Wuhan Factory produce duck wing.");}
}
class NanjingFactory : IProductionFactory
{public void ProduceNeck(){Console.WriteLine("Nanjing Factory produce duck neck.");}public void ProduceWing(){throw new NotImplementedException("Nanjing Factory has no access to produce duck wing!!!");}
}
class ChangshaFactory : IProductionFactory
{public void ProduceNeck(){throw new NotImplementedException("Changsha Factory has no access to produce duck neck!!!");}public void ProduceWing(){Console.WriteLine("Changsha Factory produce duck wing.");}
}

  在这里,我们创建了三个工厂类:WuhanFactoryNanjingFactoryChangshaFactory,每个类都实现了 IProductionFactory 接口。由于不同工厂能够生产的产品不同,我们通过用不同方式实现接口方法来体现他们在生产上的差异:

  • 若是能够实现生产该类产品,则正常输出语句xxx Factory produce duck xxx.
  • 若是不能生产该产品,则抛出NotImplementedException异常,异常信息为xxx Factory has no access to produce duck xxx.

3.3 委托和事件

//定义委托
public delegate void ProductionDelegate();//定义事件
public event ProductionDelegate ExecuteOrder;

  我们定义了一个名为ProductionDelegate的委托,它不带参数且不返回值,用于封装生产方法的调用,并且定义了事件ExecuteOrder,用于记录实现各个工厂的方法。

3.4 主函数

  在 Main 方法中,我们为每个工厂实例化了相应的生产委托,并通过这些委托调用生产方法。

static void Main(string[] args)
{//分别为三个工厂类实例化IProductionFactory Wuhan_Factory = new WuhanFactory();IProductionFactory Nanjing_Factory = new NanjingFactory();IProductionFactory Changsha_Factory = new ChangshaFactory();//为每一个工厂都创建一个单独的委托ProductionDelegate wuhanProduction = Wuhan_Factory.ProduceNeck;wuhanProduction += Wuhan_Factory.ProduceWing;ProductionDelegate nanjingProduction = Nanjing_Factory.ProduceNeck;nanjingProduction += Nanjing_Factory.ProduceWing;ProductionDelegate changshaProduction = Changsha_Factory.ProduceWing;changshaProduction += Changsha_Factory.ProduceNeck;Console.WriteLine("Wuhan Factory production:");try{wuhanProduction();}catch (NotImplementedException e){Console.WriteLine(e.Message);}Console.WriteLine("Nanjing Factory production:");try{nanjingProduction();}catch (NotImplementedException e){Console.WriteLine(e.Message);}Console.WriteLine("Changsha Factory production:");try{changshaProduction();}catch (NotImplementedException e){Console.WriteLine(e.Message);}Console.ReadLine();}

  除此之外,还采用trycatch语句块来实现订单的执行,对于每个工厂的委托,都使用了一个try-catch语句块,能够在出现异常的时候及时抛出,并且不影响其他工厂的生产。

3.5 代码运行结果

4. 代码地址

  代码仓库:https://github.com/hmcy-zbx/Windows_homework

5. 总结&改进思路

  通过本次项目的练习,我们展示了如何使用 C# 中的面向对象特性来构建一个简单的实现周黑鸭多工厂生产管理系统。该系统不仅展示了接口、类和委托的使用,还体现了面向对象设计原则继承性的应用,是一次很好的练习。
  在未来,还可以使用设计模式对其进行改进,利用简单工厂模式或者抽象工厂模式来实现可以使其更加接近实际生产的需求。

6. 阅读参考

  C#教程-接口:csharp-interface
  C#教程-委托:BV1TP411R72r
  C#教程-事件:BV1ou411a7YD
  简单工厂模式和抽象工厂模式:Graphic Design Patterns

http://www.hkea.cn/news/946671/

相关文章:

  • 互助平台网站建设费用卡点视频免费制作软件
  • 上海做b2b国际网站公司排名优化公司电话
  • 裙晖wordpress重庆seo整站优化
  • 乌克兰网站后缀谷歌浏览器下载电脑版
  • 建设部网站撤销注册资质的都是公职人员吗正规网络公司关键词排名优化
  • 杂志网站建设推广方案铜川网络推广
  • 网站建设后怎么搜索引擎优化解释
  • 网站建设维护 天博网络成都营销型网站制作
  • 秦皇岛北京网站建设百度广告投放电话
  • 团购做的比较好的网站营销推广ppt
  • 网站怎么做网站地图重庆网站制作公司哪家好
  • wordpress改地址后打不开seo品牌优化整站优化
  • 网页设计师证书含金量高吗百度网络优化
  • 咸阳网站开发长沙seo优化公司
  • 网站通cms国内十大搜索引擎排名
  • centos7安装 wordpress网站如何进行seo
  • 设计师灵感网站美国今天刚刚发生的新闻
  • 重庆南岸营销型网站建设公司推荐竞价sem托管
  • 深圳做二维码网站建设什么是互联网营销
  • 网易企业邮箱收费标准百色seo关键词优化公司
  • 做网站的财务需求张北网站seo
  • 北京赛车彩票网站怎么做佛山本地网站建设
  • 门户网站的建设方式有哪些网络推广引流
  • 做中东服装有什么网站免费seo刷排名
  • 做网站用java还是c语言百度竞价推广培训
  • 做动画视频的网站市场监督管理局官网入口
  • 做bbs网站教程军事新闻最新消息今天
  • 在哪儿可以找到网站开发的需求搜索引擎优化介绍
  • 成都网站建设代理加盟网络运营培训班多少钱
  • 太原开发网站公司站长工具端口扫描