C#:实现对周黑鸭工厂的产品生产统一管理(类、接口、委托等知识点)

本文介绍如何使用C#编程语言,通过定义接口IProductionFactory,创建WuhanFactory、NanjingFactory和ChangshaFactory类来实现对周黑鸭工厂的产品(鸭脖和鸭翅)统一管理,利用委托进行生产调度。
摘要由CSDN通过智能技术生成

目录

知识要点

问题描述

基本要求

问题分析

解决方案


知识要点

使用C#进行编码,运用类、接口、委托以及基本语法和知识,熟悉基础语法并熟练运用。


问题描述

实现对周黑鸭工厂的产品生产统一管理,主要产品包括鸭脖和鸭翅:

①武汉工厂能生生产鸭脖和鸭翅;

②南京工厂只能生产鸭翅;

③长沙工厂只能生产鸭脖。

(先后顺序可进行更改)


基本要求

①定义接口 IProductionFactory,包含生产鸭脖和鸭翅的方法;

②定义类WuhanFactory、NanjingFactory、ChangshaFactory分别实现接口IProductionFactory,用于具体的生产工厂;

③使用委托 ProductionDelegate 定义生产委托

④在 Main 函数中,创建不同工厂的实例,并通过生产委托进行生产。


问题分析

1.找到根基:接口IProductionFactory,建立生产鸭脖和鸭翅的方法,为后面实现接口备用。

 interface IProductionFactory  //定义接口
 {
     void ProductNeck();       
    //定义鸭脖生产方法
     void ProductWing();       
    //定义鸭翅生产方法
 }

 2.有了根基就要由根基向上延伸枝干:类WuhanFactory、NanjingFactory、ChangshaFactory,分别实现生产鸭脖和鸭翅的方法,以及可以通过委托调用。

class WuhanFactory():IProductionFactory    //注意接口使用的方法,下同
{
    public void ProductNeck()              //实现方法与接口一致注意实现的类型要为public,下同
    { Console.WriteLine("武汉生产鸭脖"); }
    public void ProductWing()
    { Console.WriteLine("武汉生产鸭翅"); }
}
class NanjingFactory() : IProductionFactory
{
    public void ProductNeck() 
    { Console.WriteLine("南京不生产鸭脖"); }
    public void ProductWing() 
    { Console.WriteLine("南京生产鸭翅"); }
}
class ChangshaFactory() : IProductionFactory
{
    public void ProductNeck() 
    { Console.WriteLine("长沙生产鸭脖"); }
    public void ProductWing() 
    { Console.WriteLine("长沙不生产鸭翅"); }
}

3.枝干上已经结满硕果,这时候就要拿出工具:委托ProductionDelegate,定义生产委托,便可通过将类作为事件,访问接口内方法。

public delegate void ProductDelegate();
//定义生产委托
4.前提条件做完了,进入 主Main函数,创建不同工厂的实例,并通过生产委托进行生产。
static void Main(string[] args)
{
    IProductionFactory wuhanfactory = new WuhanFactory();
    //创建武汉工厂实例
    IProductionFactory nanjingfactory = new NanjingFactory();
    //创建南京工厂实例
    IProductionFactory changshafactory = new ChangshaFactory();
    //创建长沙工厂实例
    ProductDelegate productDelegate=new ProductDelegate(wuhanfactory.ProductNeck);
    //创建生产委托并进行初始化
    productDelegate += wuhanfactory.ProductWing;
    //调入同类的实现方法
    productDelegate += nanjingfactory.ProductWing;
    productDelegate += nanjingfactory.ProductNeck;
    //同样的方法,也可以调入不同类的方法,下同
    productDelegate += changshafactory.ProductWing;
    productDelegate += changshafactory.ProductNeck;
    productDelegate();
    //集中全部方法,类函数形式进行集体调用
}

解决方案

完整代码:

class Program
{
    interface IProductionFactory  //定义接口
     {
         void ProductNeck();       
        //定义鸭脖生产方法
         void ProductWing();       
        //定义鸭翅生产方法
     }
    class WuhanFactory():IProductionFactory    //武汉工厂类定义
    {
        public void ProductNeck()              //鸭脖生产方法定义,下同
        { Console.WriteLine("武汉生产鸭脖"); }
        public void ProductWing()              //鸭翅生产方法定义,下同
        { Console.WriteLine("武汉生产鸭翅"); }
    }
    class NanjingFactory() : IProductionFactory    //南京工厂类定义
    {
        public void ProductNeck() 
        { Console.WriteLine("南京不生产鸭脖"); }
        public void ProductWing() 
        { Console.WriteLine("南京生产鸭翅"); }
    }
    class ChangshaFactory() : IProductionFactory    //长沙工厂类定义
    {
        public void ProductNeck() 
        { Console.WriteLine("长沙生产鸭脖"); }
        public void ProductWing() 
        { Console.WriteLine("长沙不生产鸭翅"); }
    }
    public delegate void ProductDelegate();
    //定义生产委托
    static void Main(string[] args)
    {
        IProductionFactory wuhanfactory = new WuhanFactory();
        //创建武汉工厂实例
        IProductionFactory nanjingfactory = new NanjingFactory();
        //创建南京工厂实例
        IProductionFactory changshafactory = new ChangshaFactory();
        //创建长沙工厂实例
        ProductDelegate productDelegate=new ProductDelegate(wuhanfactory.ProductNeck);
        //创建生产委托并进行初始化
        productDelegate += wuhanfactory.ProductWing;
        //调入同类的实现方法
        productDelegate += nanjingfactory.ProductWing;
        productDelegate += nanjingfactory.ProductNeck;
        //同样的方法,也可以调入不同类的方法,下同
        productDelegate += changshafactory.ProductWing;
        productDelegate += changshafactory.ProductNeck;
        productDelegate();
        //集中全部方法,类函数形式进行集体调用
    }
}

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值