windows程序设计课程作业一

本文介绍了如何使用C#编程实现对周黑鸭工厂的生产管理,通过接口IProductionFactory定义生产行为,WuhanFactory、NanjingFactory和ChangshaFactory类分别代表不同工厂,利用委托ProductionDelegate动态调用对应工厂的生产方法,展示了接口、类和委托在管理生产过程中的应用。
摘要由CSDN通过智能技术生成

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


问题描述

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

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

课题目的

本题目旨在如何利用c#编程语言中的接口、类、委托等关键概念去解决周黑鸭工厂的产品生产过程。通过创建不同工厂类和使用委托,我们将实现一种灵活、可扩展的解决方案,使得不同工厂的生产过程统一管理。

主要实现思路

1.定义接口 IProductionFactory

接口 IProductionFactory 的目的是定义了工厂应该具备的生产鸭脖和鸭翅的行为。它规定了工厂类必须实现的方法,即 ProduceDuckNeck()ProduceDuckWing()

代码如下(示例):
public interface IProductionFactory

{

void ProduceDuckNeck(); // 生产鸭脖的方法

void ProduceDuckWing(); // 生产鸭翅的方法

}

2.工厂实现类

我们创建了三个具体的工厂类:WuhanFactory、NanjingFactory 和 ChangshaFactory。每个工厂类都实现了接口 IProductionFactory

代码如下(示例):

public class WuhanFactory : IProductionFactory
{
    public void ProduceDuckNeck()
    {
        Console.WriteLine("Wuhan factory produces duck neck."); // 输出武汉工厂生产鸭脖的信息
    }

    public void ProduceDuckWing()
    {
        Console.WriteLine("Wuhan factory produces duck wing."); // 输出武汉工厂生产鸭翅的信息
    }
}

public class NanjingFactory : IProductionFactory
{
    public void ProduceDuckNeck()
    {
        Console.WriteLine("Nanjing factory cannot produce duck neck."); // 输出南京工厂不能生产鸭脖的信息
    }

    public void ProduceDuckWing()
    {
        Console.WriteLine("Nanjing factory produces duck wing."); // 输出南京工厂生产鸭翅的信息
    }
}

public class ChangshaFactory : IProductionFactory
{
    public void ProduceDuckNeck()
    {
        Console.WriteLine("Changsha factory produces duck neck."); // 输出长沙工厂生产鸭脖的信息
    }

    public void ProduceDuckWing()
    {
        Console.WriteLine("Changsha factory cannot produce duck wing."); // 输出长沙工厂不能生产鸭翅的信息
    }
}

完整代码实现

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

// 定义接口 IProductionFactory
public interface IProductionFactory
{
    void ProduceDuckNeck(); // 生产鸭脖的方法
    void ProduceDuckWing(); // 生产鸭翅的方法
}

// 定义委托 ProductionDelegate
public delegate void ProductionDelegate();

// 实现具体的生产工厂
public class WuhanFactory : IProductionFactory
{
    public void ProduceDuckNeck()
    {
        Console.WriteLine("Wuhan factory produces duck neck."); // 输出武汉工厂生产鸭脖的信息
    }

    public void ProduceDuckWing()
    {
        Console.WriteLine("Wuhan factory produces duck wing."); // 输出武汉工厂生产鸭翅的信息
    }
}

public class NanjingFactory : IProductionFactory
{
    public void ProduceDuckNeck()
    {
        Console.WriteLine("Nanjing factory cannot produce duck neck."); // 输出南京工厂不能生产鸭脖的信息
    }

    public void ProduceDuckWing()
    {
        Console.WriteLine("Nanjing factory produces duck wing."); // 输出南京工厂生产鸭翅的信息
    }
}

public class ChangshaFactory : IProductionFactory
{
    public void ProduceDuckNeck()
    {
        Console.WriteLine("Changsha factory produces duck neck."); // 输出长沙工厂生产鸭脖的信息
    }

    public void ProduceDuckWing()
    {
        Console.WriteLine("Changsha factory cannot produce duck wing."); // 输出长沙工厂不能生产鸭翅的信息
    }
}

class Program
{
    static void Main(string[] args)
    {
        // 创建不同工厂的实例
        WuhanFactory wuhanFactory = new WuhanFactory();
        NanjingFactory nanjingFactory = new NanjingFactory();
        ChangshaFactory changshaFactory = new ChangshaFactory();

        // 使用生产委托进行生产
        ProductionDelegate wuhanDelegate = new ProductionDelegate(wuhanFactory.ProduceDuckNeck);
        wuhanDelegate += wuhanFactory.ProduceDuckWing;

        ProductionDelegate nanjingDelegate = new ProductionDelegate(nanjingFactory.ProduceDuckWing);

        ProductionDelegate changshaDelegate = new ProductionDelegate(changshaFactory.ProduceDuckNeck);

        // 执行生产
        Console.WriteLine("Production in Wuhan:");
        wuhanDelegate(); // 调用委托,执行武汉工厂的生产方法

        Console.WriteLine("\nProduction in Nanjing:");
        nanjingDelegate(); // 调用委托,执行南京工厂的生产方法

        Console.WriteLine("\nProduction in Changsha:");
        changshaDelegate(); // 调用委托,执行长沙工厂的生产方法
    }
}

最终结果


总结

这个程序实现了对周黑鸭工厂的产品生产进行统一管理。程序包含了三个类:WuhanFactoryNanjingFactoryChangshaFactory,它们分别代表武汉、南京和长沙的工厂。这些工厂都实现了一个接口 IProductionFactory,其中包含了生产鸭脖和鸭翅的方法。

Main 函数中,首先创建了三个工厂的实例。然后定义了一个委托 ProductionDelegate,它用于表示生产操作。接着,根据不同的工厂和产品,创建了对应的委托实例,并通过委托调用了各个工厂的生产方法。

这个程序的设计思路是通过接口和委托实现了工厂产品的统一管理,使得代码更加模块化和灵活。委托的使用让程序能够动态地调用不同工厂的生产方法,增强了程序的可扩展性和可维护性。主要的难点在于理解如何有效地使用委托来实现方法的动态调用,但一旦掌握了委托的概念,就能够更轻松地编写灵活的代码。

  • 15
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值