分享
 
 
 

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

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

设计模式-建造模式

参考资料:

《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.香菜洗好了

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

*/

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有