创建者(builder)模式

创建者(builder)模式

ID:43465147

大小:511.84 KB

页数:17页

时间:2019-10-08

创建者(builder)模式_第1页
创建者(builder)模式_第2页
创建者(builder)模式_第3页
创建者(builder)模式_第4页
创建者(builder)模式_第5页
资源描述:

《创建者(builder)模式》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、生成器(builder)模式1.什么是生成器模式2.在什么情况下用生成器模式3.例子4.模型图5.Builder模式的要点6.Builder与AbstractFactory的区别7.小结Builder的概念概述:在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法确相对稳定。如何应对这种变化?如何提供一种“封装机制”来隔离出“复杂对象的各个部分”的变化,从而保持系统中的“稳定构建算法”不随着

2、需求改变而改变?这就是要说的建造者模式。意图:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。案例:在肯德基店子里面,顾客在点各自需要的食物和套餐。肯德基要怎么应对不同的顾客要的不同的套餐呢?。比如说:肯德基豪华午餐:包括一个主食,一个辅食,一杯饮料(例如新奥尔良烤鸡腿堡+新奥尔良烤翅(2块)+百事可乐(中))。这些在不同的豪华午餐中可以是不同的,但是组合成豪华午餐的过程是相同的。无论顾客点的是汉堡,三名治还是鸡肉,过程都是一样的。柜台的员工直接把主食,辅食。这些是放在一个袋子中的。饮料被倒入杯中

3、,放在袋子外边。这些过程在相互竞争的餐馆中是同样的。客户端:顾客。想去买一套套餐(这里面包括汉堡,可乐,薯条),可以有1号和2号两种套餐供顾客选择。 指导者角色:收银员。知道顾客想要买什么样的套餐,并告诉餐馆员工去准备套餐。 建造者角色:餐馆员工。按照收银员的要求去准备具体的套餐,分别放入汉堡,可乐,薯条等。 产品角色:最后的套餐,所有的东西放在同一个盘子里面。 下面开始我们的买套餐过程。有图有真相~嘻嘻。。。产品(套餐)类:usingSystem; usingSystem.Collections.Generic; u

4、singSystem.Text;usingSystem.Collections; namespaceConsoleDesignPattern {    publicclassFood    {        Hashtablefood=newHashtable();        ///添加食品publicvoidAdd(stringstrName,stringstrPrice)        {            food.Add(strName,strPrice);        }        public

5、voidShow()        {            IDictionaryEnumeratorfoodEnumerator=food.GetEnumerator();            Console.WriteLine("FoodList:");            Console.WriteLine("----------------------------------");            stringstrFoodList="";            while(foodEnumerat

6、or.MoveNext())            {                strFoodList+=""+foodEnumerator.Key.ToString();                strFoodList+=":t"+foodEnumerator.Value.ToString();            }            Console.WriteLine(strFoodList);            Console.WriteLine("-------------

7、--------------------");        }    } }2.指导者通知建造器。usingSystem; usingSystem.Collections.Generic; usingSystem.Text;namespaceConsoleDesignPattern {    ///

   ///FoodManager类,即指导者///    publicclassFoodManager    {        publicvoidConstruct(Builde

8、rbuilder)        {            builder.BuilderHamb();            builder.BuilderCoke();            builder.BuilderChip();        }    } }3.建造者处理指导者的要求,并将部件添加到产品中。using

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。