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();
}
}
}