关于c#中接口,委托与实践的简单实例操作

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

#

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

  1. 定义接口 IProductionFactory,包含生产鸭脖和鸭翅的方法。
  2. 定义类 WuhanFactory、NanjingFactory、ChangshaFactory 分别实现接口 IProductionFactory,用于具体的生产工厂。
  3. 使用委托 ProductionDelegate 定义生产委托。
  4. 在 Main 函数中,创建不同工厂的实例,并通过生产委托进行生产

 

根据要求不难看出,首先要创建一个接口,其中接口要实现鸭脖与鸭翅的生产,但该接口要实现三个类的不同生产其中三个工厂分别需要鸭脖和鸭翅、鸭脖、鸭翅。若刚开始就定义接口有两个不同的方法,那么当接口接入 WuhanFactory可以执行,而NanjingFactory、ChangshaFactory有且只有一种方法要执行,所以我们只需要在接口 IProductionFactory中定义一种方法DoWork就可以了

   interface IProductionFactory
    {
        public void DoWork();
    }

并且建立三个工厂类,使用接口进行连接。 

 class WuhanFactory: IProductionFactory
 {
     public void DoWork()
     {
         Console.WriteLine("生产鸡翅和鸭脖");
     }
 }

 class NanjingFactory: IProductionFactory
 {
     public void DoWork()
     {
         Console.WriteLine("生产鸡翅");
     }     
 }
 class ChangshaFactory : IProductionFactory
 {
     public void DoWork()
     {
         Console.WriteLine("生产鸭脖");
     }
 }

 若想要对工厂的制作进行批量操作那么必然少不了委托与事件了:

首先创建一个委托,其中的函数参数要与我们要进行批量操作的接口保持一致。这样才能进行其事件的批量操作;

 public delegate void ProductionDelegate ();
 static public event ProductionDelegate Myevent;

最后就是用Main函数来创建实例并且批量化执行事件了。

我们首先要创建接口的实例

因为可以通过接口来调用类中的函数

 我们可以实例化委托了

最后将委托一一存入事件中就完成了整个操作

static public void Main(string[] args)

{
    IProductionFactory I1= new WuhanFactory();
    IProductionFactory I2 = new ChangshaFactory();
    IProductionFactory I3 = new NanjingFactory();
    ProductionDelegate P1 = I1.DoWork;
    ProductionDelegate P2 = I2.DoWork;
    ProductionDelegate P3 = I3.DoWork;
    Program.Myevent += P1;
    Program.Myevent += P2;
    Program.Myevent += P3;
    Program.Myevent();
}

完整代码如下

public class Program

{
    public delegate void ProductionDelegate ();
    static public event ProductionDelegate Myevent;
   interface IProductionFactory
    {
        public void DoWork();
    }

    class WuhanFactory: IProductionFactory
    {
        public void DoWork()
        {
            Console.WriteLine("生产鸡翅和鸭脖");
        }
    }

    class NanjingFactory: IProductionFactory
    {
        public void DoWork()
        {
            Console.WriteLine("生产鸡翅");
        }     
    }
    class ChangshaFactory : IProductionFactory
    {
        public void DoWork()
        {
            Console.WriteLine("生产鸭脖");
        }
    }

    static public void Main(string[] args)

    {
        IProductionFactory I1= new WuhanFactory();
        IProductionFactory I2 = new ChangshaFactory();
        IProductionFactory I3 = new NanjingFactory();
        ProductionDelegate P1 = I1.DoWork;
        ProductionDelegate P2 = I2.DoWork;
        ProductionDelegate P3 = I3.DoWork;
        Program.Myevent += P1;
        Program.Myevent += P2;
        Program.Myevent += P3;
        Program.Myevent();
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值