`
- 浏览:
117731 次
- 性别:
- 来自:
济南
-
[size=large]分为指导者,抽象建造者,具体建造者
有一个例子
import java.util.*;
import junit.framework.*;
//不同的媒体形式:
class Media extends ArrayList {}
class Book extends Media {}
class Magazine extends Media {}
class WebSite extends Media {}
// 不同媒体的组成元素:
class MediaItem {
private String s;
public MediaItem(String s) { this.s = s; }
public String toString() { return s; }
}
class Chapter extends MediaItem {
public Chapter(String s) { super(s); }
}
class Article extends MediaItem {
public Article(String s) { super(s); }
}
class WebItem extends MediaItem {
public WebItem(String s) { super(s); }
}
// 抽象建造者角色,它规范了所有媒体建造的步骤:
class MediaBuilder {
public void buildBase() {}
public void addMediaItem(MediaItem item) {}
public Media getFinishedMedia() { return null; }
}
//具体建造者角色
class BookBuilder extends MediaBuilder {
private Book b;
public void buildBase() {
System.out.println("Building book framework");
b = new Book();
}
public void addMediaItem(MediaItem chapter) {
System.out.println("Adding chapter " + chapter);
b.add(chapter);
}
public Media getFinishedMedia() { return b; }
}
class MagazineBuilder extends MediaBuilder {
private Magazine m;
public void buildBase() {
System.out.println("Building magazine framework");
m = new Magazine();
}
public void addMediaItem(MediaItem article) {
System.out.println("Adding article " + article);
m.add(article);
}
public Media getFinishedMedia() { return m; }
}
class WebSiteBuilder extends MediaBuilder {
private WebSite w;
public void buildBase() {
System.out.println("Building web site framework");
w = new WebSite();
}
public void addMediaItem(MediaItem webItem) {
System.out.println("Adding web item " + webItem);
w.add(webItem);
}
public Media getFinishedMedia() { return w; }
}
//指导者角色,也叫上下文
class MediaDirector {
private MediaBuilder mb;
public MediaDirector(MediaBuilder mb) {
this.mb = mb; //具有策略模式相似特征的
}
public Media produceMedia(List input) {
mb.buildBase();
for(Iterator it = input.iterator(); it.hasNext();)
mb.addMediaItem((MediaItem)it.next());
return mb.getFinishedMedia();
}
};
//测试程序——客户程序角色
public class BuildMedia extends TestCase {
private List input = Arrays.asList(new MediaItem[] {
new MediaItem("item1"), new MediaItem("item2"),
new MediaItem("item3"), new MediaItem("item4"),
});
public void testBook() {
MediaDirector buildBook = new MediaDirector(new BookBuilder());
Media book = buildBook.produceMedia(input);
String result = "book: " + book;
System.out.println(result);
assertEquals(result, "book: [item1, item2, item3, item4]");
}
public void testMagazine() {
MediaDirector buildMagazine = new MediaDirector(new
MagazineBuilder());
Media magazine = buildMagazine.produceMedia(input);
String result = "magazine: " + magazine;
System.out.println(result);
assertEquals(result, "magazine: [item1, item2, item3, item4]");
}
public void testWebSite(){
MediaDirector buildWebSite = new MediaDirector(new
WebSiteBuilder());
Media webSite = buildWebSite.produceMedia(input);
String result = "web site: " + webSite;
System.out.println(result);
assertEquals(result, "web site: [item1, item2, item3, item4]");
}
public static void main(String[] args) {
junit.textui.TestRunner.run(BuildMedia.class);
}
}
作者Blog:http://blog.csdn.net/classic1999/[/size]
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
云计算技术自近十几年来的发展和普及,给传统IT系统建设模式带来了颠覆性的变化。本文以云计算时代IT系统建设模式为主题,探讨了这一技术对于企业信息系统建设模式的影响,并分析了云计算技术的概念、特点以及在建设...
分布式村镇有机污染物综合处置途径与建设模式涉及了多个专业知识领域,主要包括了环境工程、污水处理技术、有机固体废物处理、SC-MBBR(柔性悬浮填料移动床生物膜反应器)系统、以及现代金融创新手段在环保项目中的...
介绍了基于大数据下班组建设模式,即设立1套班组建设考核标准;执行3项基本措施:安全管理保生产、学习培训提技能、人性化管理凝人心;应用2条生产经营模式:收集数据日巡检整理数据月保养模式;大数据分析指导单机核算...
人工智能 背景下学科交叉应用型研究生培养实践基地建设模式研究.pdf
EPC建设模式,即Engineering-Procurement-Construction模式,是一种集工程设计、采购、施工于一体的总承包建设模式。这种模式在国际建设领域中逐渐受到青睐,因为它显著地改善了传统建设模式的一些缺点,尤其是在...
【高速公路建设模式】在中国,高速公路建设长期以来面临委托代理问题,主要表现为政府在项目建设中的单一主体地位。政府不仅是财政投资的主导者,而且在融资建设、BOT(Build-Operate-Transfer,即建设-运营-转让)...
智慧城市建设模式及建设方案 智慧城市建设模式及建设方案是当前城市发展的热点议题,旨在通过信息技术和物联网技术,以智能化、自动化和可持续化方式来改善城市的规划、建设和管理。以下是相关的知识点: 1. 智慧...
乡村振兴战略背景下商洛市美丽乡村建设模式研究.docx乡村振兴战略背景下商洛市美丽乡村建设模式研究.docx乡村振兴战略背景下商洛市美丽乡村建设模式研究.docx乡村振兴战略背景下商洛市美丽乡村建设模式研究.docx乡村...
### 现代智慧城市建设模式研究 #### 智慧城市的定义与意义 智慧城市是指运用先进的信息技术手段,如物联网(IoT)、大数据、云计算等,整合城市中的各种资源和服务,提高城市管理效率和服务质量,实现城市可持续...
【总承包建设模式的优势】 在现代化医院的建设过程中,EPC(Engineering Procurement Construction)总承包建设模式逐渐成为一种优选方案,相较于传统的建设模式,EPC模式展现出显著的优势。 1. 完善的项目管理...
### 智慧城市开发建设模式之BOT模式详解 #### 一、引言 随着信息技术的飞速发展,智慧城市的建设已成为全球关注的焦点之一。在众多的建设模式中,BOT(Build-Operate-Transfer,建设-经营-转让)模式因其独特的融资...
雪亮工程的典型建设模式主要包括两种:雪亮工程模式和平安社区模式。 雪亮工程模式主要关注城市范围内的监控网络建设。其建设概述涵盖了整个城市的视频监控系统的规划和实施,包括前端摄像头的部署、后端数据中心的...
本文主要探讨了我国保障性住房建设模式及其重要性,同时也分析了当前模式存在的问题。 首先,保障性住房的建设在国家政策层面得到了高度重视,它不仅是解决住房难题的手段,也是政府公共服务职责的重要体现。通过...
生态城市发展与建设模式的知识点包括: 1. 生态城市概念的提出与发展:生态城市的概念最早可追溯到公元前,当时人们已经开始关注人与自然的和谐共处。近现代则在20世纪末期,随着环境污染和生态退化问题的日益严重...
第八章 数据中心的建设模式分析主要探讨了数据中心建设的两种主要方式——自建和外包,以及它们在财务、能力和效率方面的差异。数据中心建设是一项复杂的系统工程,包括选址、基础设施建设、运维管理等多个环节,...
云计算的出现,为电子政务建设提供了一种新型的、高效的建设模式,有助于解决传统电子政务中存在的诸多问题。 电子政务建设中常见的问题包括部门分割、信息孤岛、资源重复投资和缺乏交互。这些问题导致电子政务建设...
【云计算技术拓展学习-ZSTACK的云平台建设模式】 在当前数字化转型的大潮中,云计算作为关键技术之一,已广泛应用于政府、企业及各个行业的信息化建设。本文主要探讨了三种基于ZSTACK的云平台建设模式,包括专属云...