windows程序设计课程--C#--类,委托,接口

本文介绍了如何使用C#编程语言,通过定义接口IProductionFactory和相关工厂类如WuhanFactory、NanjingFactory、ChangshaFactory,以及委托机制来统一管理周黑鸭工厂的产品生产,展示了如何利用接口实现相同功能的不同工厂,并通过委托简化代码执行流程,提高代码可读性和可维护性。
摘要由CSDN通过智能技术生成

1、作业内容


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

具体要求如下:

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

2.主要思路

定义二个公共的接口分别为鸭脖和鸭翅,使不同的工厂实现相同的生产功能

(1)写接口

(2)写三个工厂类继承接口

分别为武汉工厂南京工厂和长沙工厂

声明工厂后引入委托和事件,让三个工厂能够同时生产起来。

(3)声明委托

(4)创建实例

创建武汉工厂南京工厂以及长沙工厂实例

(5)实例化委托

定义了一个生产委托productionDelegate,将武汉工厂南京工厂以及长沙工厂方法依次添加到委托之中。

3.难点分析

本题难度不高,主要是要明白接口与委托的作用以及委托的声明与定义。实现武汉工厂南京工厂以及长沙工厂三个功能需要接口来实现.通过委托,可以将多个工厂的生产方法统一管理。调用代码只需要调用委托一次,就可以依次执行多个工厂的生产方法,无需逐个调用每个工厂的方法。这样可以简化代码,提高可读性和可维护性。

4.运行结果

5.代码展示

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Interface
{
    interface IYBPF
    {
        void ProductYB();
    }
    interface IYCPF
    {
        void ProductYC();
    }

    class WuhanFactory : IYBPF, IYCPF
    {
        public void ProductYB() { Console.WriteLine("鸭脖武汉生产。"); }
        public void ProductYC() { Console.WriteLine("鸭翅武汉生产。"); }

    }

    class NanjingFactory : IYCPF
    {
        public void ProductYC() { Console.WriteLine("鸭翅南京生产。"); }

    }

    class ChangshaFactory : IYBPF
    {
        public void ProductYB() { Console.WriteLine("鸭脖长沙生产。"); }

    }
    internal class Program
    {
        public delegate void ProductionDelegate();
        public event ProductionDelegate Production;
        static void Main(string[] args)
        {
            WuhanFactory F1 = new WuhanFactory();
            NanjingFactory F2 = new NanjingFactory();
            ChangshaFactory F3 = new ChangshaFactory();
            ProductionDelegate P1 = F1.ProductYB;
            ProductionDelegate P2 = F1.ProductYC;
            ProductionDelegate P3 = F2.ProductYC;
            ProductionDelegate P4 = F3.ProductYB;
            Program m1 = new Program();
            m1.Production += P1;
            m1.Production += P2;
            m1.Production += P3;
            m1.Production += P4;
            m1.Production();
            Console.ReadLine();
        }
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值