java设计模式-建造模式

java设计模式-建造模式

ID:19629072

大小:39.50 KB

页数:7页

时间:2018-10-04

java设计模式-建造模式_第1页
java设计模式-建造模式_第2页
java设计模式-建造模式_第3页
java设计模式-建造模式_第4页
java设计模式-建造模式_第5页
资源描述:

《java设计模式-建造模式》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、1、建造模式的组成  抽象建造者角色:这个角色用来规范产品对象的各个组成成分的建造。一般而言,此角色独立于应用程式的商业逻辑。  具体建造者角色:担任这个角色的是于应用程式紧密相关的类,他们在指导者的调用下创建产品实例。这个角色在实现抽象建造者角色提供的方法的前提下,达到完成产品组装,提供成品的功能。  指导者角色:调用具体建造者角色以创建产品对象。指导者并没有产品类的具体知识,真正拥有产品类的具体知识的是具体建造者对象。产品角色:建造中的复杂对象。他要包含那些定义组件的类,包括将这些组件装配成产品的接口。2、角色组成的类图:首先客户程

2、式创建一个指导者对象,一个建造者角色,并将建造者角色传入指导者对象进行设置。然后,指导者按照步骤调用建造者的方法创建产品。最后客户程式从建造者或指导者那里得到产品。  从建造模式的工作流程来看,建造模式将产品的组装“外部化”到了建造者角色中来。这是和所有正规的工厂模式不相同的——产品的创建是在产品类中完成的。3、实现媒体能存在不同的表达形式,比如书籍、杂志和网络。这个例子表示不同形式的媒体构造的步骤是相似的,所以能被提取到指导者角色中去。  importjava.util.*;  importjunit.framework.*;  //

3、不同的媒体形式:  classMediaextendsArrayList{}  classBookextendsMedia{}  classMagazineextendsMedia{}  classWebSiteextendsMedia{}  //进而不含不同的媒体组成元素:  classMediaItem{  privateStrings;  publicMediaItem(Strings){this.s=s;}  publicStringtoString(){returns;}  }  classChapterextendsMedi

4、aItem{  publicChapter(Strings){super(s);}  }  classArticleextendsMediaItem{  publicArticle(Strings){super(s);}  }  classWebItemextendsMediaItem{  publicWebItem(Strings){super(s);}  }  //抽象建造者角色,他规范了所有媒体建造的步骤:  classMediaBuilder{  publicvoidbuildBase(){}  publicvoidaddMed

5、iaItem(MediaItemitem){}  publicMediagetFinishedMedia(){returnnull;}  }  //具体建造者角色  classBookBuilderextendsMediaBuilder{  privateBookb;  publicvoidbuildBase(){  System.out.println("Buildingbookframework");  b=newBook();  }  publicvoidaddMediaItem(MediaItemchapter){  Syste

6、m.out.println("Addingchapter"+chapter);  b.add(chapter);  }  publicMediagetFinishedMedia(){returnb;}  }  classMagazineBuilderextendsMediaBuilder{  privateMagazinem;  publicvoidbuildBase(){  System.out.println("Buildingmagazineframework");  m=newMagazine();  }  publicvoid

7、addMediaItem(MediaItemarticle){  System.out.println("Addingarticle"+article);  m.add(article);  }  publicMediagetFinishedMedia(){returnm;}  }  classWebSiteBuilderextendsMediaBuilder{  privateWebSitew;  publicvoidbuildBase(){  System.out.println("Buildingwebsiteframework"

8、);  w=newWebSite();  }  publicvoidaddMediaItem(MediaItemwebItem){  System.out.println("Addingwebitem"+w

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

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

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