大话设计之建造者模式―元建课件.ppt

大话设计之建造者模式―元建课件.ppt

ID:57114037

大小:171.00 KB

页数:16页

时间:2020-07-31

大话设计之建造者模式―元建课件.ppt_第1页
大话设计之建造者模式―元建课件.ppt_第2页
大话设计之建造者模式―元建课件.ppt_第3页
大话设计之建造者模式―元建课件.ppt_第4页
大话设计之建造者模式―元建课件.ppt_第5页
资源描述:

《大话设计之建造者模式―元建课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第13章好菜每回味不同——建造者模式主讲人:元建主要内容建造者模式的概念建造者模式的优点建造者模式基本代码建造模式适用总结建造者模式的概念建造者模式:又叫生成器模式是将一个负责对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示建造者模式的优点建造者模式是一个产品的内部表象与产品的生成过程分割开来,从而使一个建造过程生成具有不同的内部表象的产品对象。建造者模式:用户只需指定需要建造的类型就可以得到它们,而具体的建造过程和细节就不需要知道。建造者模式结构图创建一个Product对象的各个部件指定的抽象接口构建一个使用Bui

2、lder接口的对象具体创造者,实现Builder接口,构建和装备各个部件。具体产品角色建造者模式基本代码Product类——产品类,由多个部件组成。classProduct{IListparts=newList();publicvoidAdd(stringpart){parts.Add(part);}publicvoidShow(){Console.WriteLine("产品创建----");foreach(stringpartinparts){Console.WriteLine(part);}

3、}}添加产品部件列出所有的产品建造者模式基本代码Builder类——抽象建造者类,确定产品由两个部件PatrA和PartB组成,并声明一个得到产品建造后结果的方法GetResult。abstractclassBuilder{publicabstractvoidBuildPartA();publicabstractvoidBuildPartB();publicabstractProductGetResult();}建造者模式基本代码ConcreteBuilder1类——具体建造者类classConcreteBuilder1:Buil

4、der{privateProductproduct=newProduct();publicoverridevoidBuildPartA(){product.Add("部件A");}publicoverridevoidBuildPartB(){product.Add("部件B");}publicoverrideProductGetResult(){returnproduct;}}建造具体两个部件:部件A和部件B建造者模式基本代码ConcreteBuilder2类——具体建造者类classConcreteBuilder2:Builde

5、r{privateProductproduct=newProduct();publicoverridevoidBuildPartA(){product.Add("部件X");}publicoverridevoidBuildPartB(){product.Add("部件Y");}publicoverrideProductGetResult(){returnproduct;}}建造具体两个部件:部件X和部件Y建造者模式基本代码Direct类——指挥者类classDirector{publicvoidConstruct(Builderb

6、uilder){builder.BuildPartA();builder.BuildPartB();}}用来指挥建造过程建造者模式基本代码客户端代码:staticvoidMain(string[]args){Directordirector=newDirector();Builderb1=newConcreteBuilder1();Builderb2=newConcreteBuilder2();director.Construct(b1);Productp1=b1.GetResult();p1.Show();director.Co

7、nstruct(b2);Productp2=b2.GetResult();p2.Show();Console.Read();}指挥者用ConcreteBuilder1的方法来建造产品指挥者用ConcreteBuilder2的方法来建造产品建造者模式实现要点1、建造者模式主要用于“分步骤构建一个复杂的对象”,在这其中“分步骤”是一个稳定的算法,而复杂对象的各个部分则经常变化。2、产品不需要抽象类,特别是由于创建对象的算法复杂而导致使用此模式的情况下或者此模式应用于产品的生成过程,其最终结果可能差异很大,不大可能提炼出一个抽象产品类。

8、3、创建者中的创建子部件的接口方法不是抽象方法而是空方法,不进行任何操作,具体的创建者只需要覆盖需要的方法就可以,但是这也不是绝对的,特别是类似文本转换这种情况下,缺省的方法将输入原封不动的输出是合理的缺省操作。4、前面我们说过的抽象工厂模式(Ab

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

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

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