`

设计模式-建造模式(一碗牛肉面的制造过程)

阅读更多

     自己CSDN blog 上回收来的,以后都集中到这里了。

 

 

设计模式-建造模式

参考资料:
《java与模式》
《设计模式-可复用面向对象软件的基础》
《C#技术揭密》

摘要:介绍Gof设计模式创建模式中的建造模式,结合一个生活中的一个,来说明建造模式的使用场合和使用方法
          工厂模式中,创建对象是直接创建的,而对一个复杂的对象来说,用建造模式更适合,它一步一步的创建一个复杂对象。
         基本的模式是这样的

interface  Builder
{
    //建造“零件”
    void BuildPart1();
    void BuildPart2();
    
    //返回产品
    Product GetProduct();
}
 

 

 

这样从此类继承的建造者,可以根据上面定义的两种建造零件方法,构造任意复杂的建造者。

 

/*
 * created by sharpdevelop.
 * user: administrator
 * date: 2004-12-02
 * time: 19:57
 *
 * to change this template use tools | options | coding | edit standard headers.
 */
using System;

namespace builder
{
 class mainclass
 {
      public static void Main(string[] args)
      {
           SnackShop snackShop=new SnackShop();
           NoodleBuilder bcnwc=new BeefCutNoodleWithCarawayBuilder();
           Noodle noodle=snackShop.CreateBeefCutNoodleWithCaraway(bcnwc);
   
           Console.ReadLine();
      }
 }
 
 //定义快餐店,导演者的角色
 class SnackShop
 {
      public SnackShop()
      {

      }

      //客户端创建加香菜牛肉刀削面的方法
      public Noodle CreateBeefCutNoodleWithCaraway(NoodleBuilder noodleBuilder)
      {
           noodleBuilder.BuildNoodle();
           noodleBuilder.BuildMeat();
           noodleBuilder.BuildPureNoodle();
           noodleBuilder.BuildSoup();
           noodleBuilder.BuildVegetable();
           Console.WriteLine("一碗香喷喷的牛肉刀削面加香菜做好啦!\n");
   
           return noodleBuilder.GetNoodle();
      }
 }
 
 //定义面条构造器接口
 interface NoodleBuilder
 {
      void BuildNoodle();
      void BuildPureNoodle();
      void BuildMeat();
      void BuildVegetable();
      void BuildSoup();
  
      Noodle GetNoodle();
 }
 
 //肉类
 public class Meat
 {
      public Meat()
      {
  
      }
      void Make()
      {
  
      }
 }
 //纯面条类
 public class PureNoodle
 {
      void Make()
      {
  
      }
 }
 //蔬菜类
 public class Vegetable
 {
      void Make()
      {
  
      }
 }
 //汤类
 public class Soup
 {
      public Soup()
      {
   
      }

      void Make()
      {
  
      }
 }
 
 //定义拉面,它从纯面条类继承
 public class PullPureNoodle:PureNoodle
 {
      public PullPureNoodle()
      {
           Console.WriteLine("拉面做好了\n");
      }
      public void Make()
      {
   
      }
 }
 
 //定义刀削面,它从纯面条类继承
 public class CutPureNoodle:PureNoodle
 {
      public CutPureNoodle()
      {
   
      }
      public void Make()
      {
   
      }
 }
 
 //定义青菜
 public class Greengrocery:Vegetable
 {
      public Greengrocery()
      {
           Console.WriteLine("青菜买好了\n");
      }
      public void Make()
      {
       
      }
 }
 
 //定义香菜
 public class Caraway :Vegetable
 {
      public Caraway()
      {
   
      }
      public void Make()
      {
       
      }
 }
 
 //定义羊肉
 public class Mutton:Meat
 {
      public Mutton()
      {    
           Console.WriteLine("羊肉做好了\n");
      }
      public void Make()
      {
   
      }
 }
 
 //定义牛肉
 public class Beef:Meat
 {
      public Beef()
      {
   
      }
      public void Make()
      {
   
      }
 }
 
 //定义面条类
 public class Noodle
 {
      public PureNoodle pureNoodle;
      public Vegetable vegetable;
      public Soup soup;
      public Meat meat;
      public Noodle()
      {
           pureNoodle=new PureNoodle();
           vegetable=new Vegetable();
           soup=new Soup();
           meat=new Meat();
   
      }
  
 }
 
 //定义牛肉刀削面的建造者逻辑
 class BeefCutNoodleWithCarawayBuilder :NoodleBuilder
 {
      public BeefCutNoodleWithCarawayBuilder()
      {
   
      }
      private Noodle noodle;
      public void BuildPureNoodle()
      {
           noodle.pureNoodle=new CutPureNoodle();
           Console.WriteLine("2.刀削面做好了\n");
      }
      public void BuildVegetable()
      {
           noodle.vegetable=new Caraway();
           Console.WriteLine("4.香菜洗好了\n");
      }
      public void BuildMeat()
      {
           noodle.meat=new Beef();
           Console.WriteLine("1.牛肉做好了 \n");
      }
      public void BuildSoup()
      {
           noodle.soup=new Soup();
           Console.WriteLine("3.面汤做好了\n");
      }
      public void BuildNoodle()
      {
           Console.WriteLine("开始做牛肉刀削面啦 \n");
           noodle=new Noodle();
      }
      public Noodle GetNoodle()
      {
           return noodle;
      }
 }
 
}

/*运行结果:
 *
开始做牛肉面条啦

1.牛肉做好了

2.刀削面做好了

3.面汤做好了

4.香菜洗好了

一碗香喷喷的牛肉刀削面做好啦!
*/
 


 

分享到:
评论

相关推荐

    六年级一碗牛肉面阅读答案.doc

    很抱歉,但根据提供的文件信息,“六年级一碗牛肉面阅读答案.doc”似乎是一个与IT行业无关的文档,它可能包含小学六年级阅读理解题目及答案,不适合生成IT相关的专业知识点。如果你需要关于阅读理解策略或者教育类的...

    一碗牛肉面想到的孝顺礼仪.doc

    这篇文档虽然标题为《一碗牛肉面想到的孝顺礼仪》,但实际上讲述的是一个关于孝道的故事。故事中的小男孩通过自己的方式感恩奶奶,体现了孝顺的美德。在这个简短的故事中,我们可以提炼出几个重要的知识点: 1. ...

    打篮球与设计模式(关于设计模式)

    在软件工程中,简单工厂模式是一种用于创建对象的设计模式,它封装了对象的创建过程。在这个模式中,存在一个工厂类,它根据输入参数决定创建哪种类型的对象。在文中提到的场景中,“打完篮球真累,正好边上有个小摊...

    行业文档-设计装置-一种牛肉分割操作平台.zip

    《一种牛肉分割操作平台》的设计装置是食品加工领域中的一项创新技术,主要针对牛肉分割的高效、安全与精准性需求。这份文档详细介绍了该平台的结构、功能、工作原理以及其在实际生产中的应用,旨在提升牛肉加工的...

    行业文档-设计装置-一种健脾开胃牛肉酱及其制备方法.zip

    本文件"行业文档-设计装置-一种健脾开胃牛肉酱及其制备方法.zip"虽然看似与传统的IT技术不太相关,但它实际上可以关联到食品科技、智能制造、包装设计以及数字化流程管理等多个领域。下面将详细探讨这些知识点。 ...

    二十三种设计模式通俗理解

    工厂模式是一种常用的软件设计模式,它的核心思想在于将实例化的责任交给一个专门的类——工厂类。这样做的好处是用户无需了解创建对象的具体过程,只需要知道如何获取对象。比如,当您带女朋友出去吃饭时,无论是在...

    行业文档-设计装置-一种酱牛肉的制作工艺.zip

    在IT行业中,尽管“设计装置”...综上所述,虽然这个“行业文档-设计装置-一种酱牛肉的制作工艺.zip”看似不属于传统的IT领域,但它在文档管理、信息共享、数字资源处理、协同工作以及合规性方面涉及了IT技术的应用。

    初中语文文摘历史两千元一碗牛肉面

    初中语文文摘历史两千元一碗牛肉面

    初中语文文学讨论美文荐读两碗牛肉面

    初中语文文学讨论美文荐读两碗牛肉面

    兰州牛肉面导游词介绍5篇精选.doc

    兰州牛肉面是一种非常流行的中国面食,拥有悠久的历史和独特的特点。以下是关于兰州牛肉面的知识点: 历史: 兰州牛肉面有85年的历史,始创于1915年,由回族人马保子创办。当时,马保子家境贫寒,为生活所迫,他在...

    兰州牛肉面:一碗地道的西北风情

    在广袤的西北大地上,有一种美食承载着深厚的文化底蕴和浓浓的家乡情怀,那就是兰州牛肉面。这道源自甘肃省兰州市的传统面食,以其独特的口感和制作工艺,成为了无数食客心中的美食佳肴。 兰州牛肉面的面条讲究...

    行业文档-设计装置-一种酱牛肉的制备方法.zip

    6. **移动应用与用户界面**:为用户设计友好的移动应用,让他们能够远程控制烹饪过程,预设烹饪模式,或者获取食谱建议,提高用户体验。 7. **云计算与大数据**:存储和处理大量生产数据需要云计算能力,通过大数据...

    行业文档-设计装置-一种健脾活血牛肉酱的制备方法.zip

    在IT行业中,尽管"行业文档-设计装置-一种健脾活血牛肉酱的制备方法.zip"这个文件标题看似与信息技术直接关联性不大,但它实际上可能涉及到食品科技、自动化生产和工业设计等领域。在这个标题中,“设计装置”可能是...

    建造者模式1

    建造者模式(Builder Pattern)是一种创造型设计模式,用于将一个复杂对象的构造与其表示分离,使同样的构建过程可以创建不同的表示。该模式通过将一个复杂对象分解为多个简单的对象,逐步完成复杂对象的构建。建造...

    台湾牛肉面.pdf

    台湾牛肉面的特色在于其独特的风味,包括香软的牛肉、浓郁的汤底和丰富的配菜,这些都是构成一碗美味牛肉面不可或缺的元素。文章中提到,一碗好的牛肉面应该在上桌时就能散发出肉香、面香和汤香,令人垂涎欲滴,甚至...

    两碗红烧牛肉面作文.doc

    【标题】与【描述】中的"两碗红烧牛肉面作文.doc"实际上是一个与IT行业不直接相关的主题,它更倾向于文学创作或个人生活记录。然而,我们可以从中挖掘出一些与IT相关的知识点,比如文档处理和文字编辑。 1. **文档...

    设计模式实现代码

    4. **建造者模式(Builder)**:将复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 5. **原型模式(Prototype)**:通过复制已有对象来创建新对象,减少创建新对象的成本。 6. **适配器...

    追MM与设计模式.pdf

    ### 追MM与设计模式——IT知识解析 ...设计模式是一种重要的编程思想,掌握它们对于提高软件开发的质量和效率具有重要意义。无论是创建型模式还是结构型模式,都能够帮助开发者更加灵活高效地解决实际问题。

    兰州牛肉面(食品安全企业标准).pdf

    兰州牛肉面是以速食面、牛肉汤为原料,配以脱水蔬菜、油辣椒包、牛肉包、萝卜包,经包装等工序制成的一种食品。本标准规定了兰州牛肉面的术语和定义、技术要求、试验方法、检验规则、标志、包装、运输及贮存。 技术...

Global site tag (gtag.js) - Google Analytics