zoukankan      html  css  js  c++  java
  • 建造者模式作业

    下面是作业的要求:

      

      下面是设计的uML类图:

       

       下面是具体的代码;

       

     1 /// <summary>
     2     /// 指挥者类
     3     /// </summary>
     4     public class MealDirector
     5     {
     6         private MealBuilder _mealbuilder;
     7 
     8         public MealDirector(MealBuilder mealbuilder)
     9         {
    10             _mealbuilder = mealbuilder;
    11         }
    12 
    13         public Meal CreateMeal()
    14         {
    15             _mealbuilder.BuildBuger();
    16             _mealbuilder.BuildChips();
    17             _mealbuilder.buildDrink();
    18 
    19             return _mealbuilder.GetMeal();
    20         }
    21     }
     1 /// <summary>
     2     /// 抽象建造者类
     3     /// </summary>
     4     public abstract class MealBuilder
     5     {
     6         protected Meal _meal = new Meal();
     7 
     8         public abstract void BuildBuger();
     9         public abstract void BuildChips();
    10         public abstract void buildDrink();
    11 
    12         public Meal GetMeal()
    13         {
    14             return _meal;
    15         }
    16     }
     1 // <summary>
     2     /// KFC套餐 具体建造者类
     3     /// </summary>
     4     public class MealKFCBuilder:MealBuilder
     5     {
     6         public override void BuildBuger()
     7         {
     8             _meal.AddPart(new KFCBuger());
     9         }
    10 
    11         public override void BuildChips()
    12         {
    13             _meal.AddPart(new KFCChips());
    14         }
    15 
    16         public override void buildDrink()
    17         {
    18             _meal.AddPart(new KFCDrink());
    19         }
    20 
    21     }
    /// <summary>
        /// 麦当劳套餐 具体创建者类
        /// </summary>
        public class MealMBuilder:MealBuilder
        {
            public override void BuildBuger()
            {
                _meal.AddPart(new MBuger());
            }
    
            public override void BuildChips()
            {
                _meal.AddPart(new MChips());
            }
    
            public override void buildDrink()
            {
                _meal.AddPart(new MDrink());
            }
        }
     1  /// <summary>
     2     /// 套餐类
     3     /// </summary>
     4     public class Meal
     5     {
     6         protected List<part> _parts = new List<part>();
     7 
     8         public void AddPart(part part1)
     9         {
    10             _parts.Add(part1);
    11         }
    12 
    13         public void Make()
    14         {
    15             foreach (part part1 in _parts)
    16             {
    17                 part1.Make();
    18             }
    19         }
    20     }
    // <summary>
        /// 套餐产品抽象类
        /// </summary>
         public abstract class part
        {
             public abstract void Make();
        }
     1 /// <summary>
     2     /// 汉堡部分
     3     /// </summary>
     4     class BugerPart
     5     {
     6     }
     7 
     8     public class KFCBuger : part
     9     {
    10         public override void Make()
    11         {
    12             Console.WriteLine("KFC汉堡,递到了客户面前");
    13         }
    14     }
    15 
    16     public class MBuger : part
    17     {
    18         public override void Make()
    19         {
    20             Console.WriteLine("麦当劳汉堡,递到了客户面前");
    21         }
    22     }
     1 /// <summary>
     2     /// 薯条部分
     3     /// </summary>
     4     class ChipsPart
     5     {
     6     }
     7 
     8     public class KFCChips : part
     9     {
    10         public override void Make()
    11         {
    12             Console.WriteLine("KFC薯条,递到了客户面前");
    13         }
    14     }
    15 
    16     public class MChips : part
    17     {
    18         public override void Make()
    19         {
    20             Console.WriteLine("麦当劳薯条,递到了客户面前");
    21         }
    22     }
     1 /// <summary>
     2     /// 饮料部分
     3     /// </summary>
     4     class DrinkPart
     5     {
     6     }
     7 
     8     public class KFCDrink : part
     9     {
    10         public override void Make()
    11         {
    12             Console.WriteLine("KFC饮料,递到了客户面前");
    13         }
    14     }
    15 
    16     public class MDrink : part
    17     {
    18         public override void Make()
    19         {
    20             Console.WriteLine("麦当劳饮料,递到了客户面前");
    21         }
    22     }
     1 //客户端代码
     2 class Client
     3     {
     4         static void Main(string[] args)
     5         {
     6             MealKFCBuilder kfcbuilder = new MealKFCBuilder();
     7             MealDirector kfcdirector = new MealDirector(kfcbuilder);
     8             kfcdirector.CreateMeal().Make();
     9 
    10             Console.WriteLine("kfc套餐打包完毕,用户得到kfc套餐。");
    11             Console.Read();
    12         }
    13     }

    下面是结果:

      

  • 相关阅读:
    sklearn之线性回归
    机器学习概述
    scipy之定积分计算和简单图像处理
    scipy之插值器
    numpy之排序
    spring mvc 实现文件上传
    Maven安装本地jar包到本地仓库
    spring mvc实现转发和重定向
    sprign mvc 解决中文乱码问题
    spring mvc 中使用session
  • 原文地址:https://www.cnblogs.com/bldz/p/5089055.html
Copyright © 2011-2022 走看看