zoukankan      html  css  js  c++  java
  • 抽象工厂模式

    UML图:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace KFCandM
    {
        class Program
        {
            interface IFactory
            {
                Burger Makeburger();
                Drink Makedrink();
                Chicken Makechicken();
            }
    
            class KFC : IFactory
            {
                public Burger Makeburger()
                {
                    return new Kburger();
                }
    
                public Drink Makedrink()
                {
                    return new Kdrink();
                }
    
                public Chicken Makechicken()
                {
                    return new Kchicken();
                }
            }
    
            class MacDonald : IFactory
            {
                public Burger Makeburger()
                {
                    return new Mburger();
                }
    
                public Drink Makedrink()
                {
                    return new Mdrink();
                }
    
                public Chicken Makechicken()
                {
                    return new Mchicken();
                }
            }
    
    
            abstract class Burger
            {
                public abstract void burger();
            }
    
            class Kburger : Burger
            {
                public override void burger()
                {
                    Console.WriteLine("KFC's Hamburger is ready...");
                }
            }
    
    
            class Mburger : Burger
            {
                public override void burger()
                {
                    Console.WriteLine("MacDonald's New Orleans Beef Burger is ready...");
                }
            }
    
            abstract class Drink
            {
                public abstract void drink();
            }
            class Kdrink : Drink
            {
                public override void drink()
                {
                    Console.WriteLine("KFC's coffee is ready...");
                }
            }
    
            class Mdrink : Drink
            {
                public override void drink()
                {
                    Console.WriteLine("MacDonald's orange juice is ready...");
                }
            }
            abstract class Chicken
            {
                public abstract void chicken();
            }
    
            class Kchicken : Chicken
            {
                public override void chicken()
                {
                    Console.WriteLine("KFC's  New Orleans chicken wings are ready...");
                }
            }
    
            class Mchicken : Chicken
            {
                public override void chicken()
                {
                    Console.WriteLine("MacDonald's spicy chicken wings are ready...");
                }
            }
    
            class Food
            {
                private Burger _burger;
                private Drink _drink;
                private Chicken _chicken;
    
                public Burger Burger
                {
                    get { return _burger; }
                    set { _burger = value; }
                }
    
                public Drink Drink
                {
                    get { return _drink; }
                    set { _drink = value; }
                }
    
                public Chicken Chicken
                {
                    get { return _chicken; }
                    set { _chicken = value; }
                }
                public void Eatting()
                {
                    _chicken.chicken();
                    _burger.burger();
                    _drink.drink();
                    Console.WriteLine("The lunch is over");
                }
    
                private static void Main(string[] args)
                {
                    IFactory factory1 = new KFC();
                    IFactory factory2 = new MacDonald();
    
                    Food f1 = new Food();
                    f1.Burger = factory1.Makeburger();
                    f1.Chicken = factory1.Makechicken();
                    f1.Drink = factory1.Makedrink();
                    f1.Eatting();
    
                    Food f2 = new Food();
                    f2.Burger = factory2.Makeburger();
                    f2.Chicken = factory2.Makechicken();
                    f2.Drink = factory2.Makedrink();
                    f2.Eatting();
    
                    Console.ReadLine();
    
                }
    
            }
        }
    }

    运行结果:

  • 相关阅读:
    python中线程 进程 协程
    python 部署lvs
    python中函数
    python监控cpu 硬盘 内存
    python文件操作
    python中字典
    零基础逆向工程34_Win32_08_线程控制_CONTEXT结构
    零基础逆向工程33_Win32_07_创建线程
    零基础逆向工程32_Win32_06_通用控件_VM_NOTIFY
    零基础逆向工程31_Win32_05_提取图标_修改标题
  • 原文地址:https://www.cnblogs.com/CHUR/p/4936775.html
Copyright © 2011-2022 走看看