- 浏览: 18324 次
- 性别:
- 来自: 西安
最新评论
Builder Pattern:可以将一个产品的内部表象与产品的生成过程分割开来,从而使一个建造过程生成具有不同的内部表象的产品对象。
Mobile.java
package com.flyingh.product; import java.util.List; public class Mobile { private List<String> list; public Mobile(List<String> list) { super(); this.list = list; } public List<String> getList() { return list; } public void setList(List<String> list) { this.list = list; } @Override public String toString() { // TODO Auto-generated method stub StringBuilder sb = new StringBuilder("手机拥有功能:["); for (String str : list) { sb.append(str).append(","); } sb.deleteCharAt(sb.length() - 1).append("]"); return sb.toString(); } }
MobileBuilder.java
package com.flyingh.ibuilder; import com.flyingh.product.Mobile; public interface MobileBuilder { void addDialFunction(); void addMp3Function(); void addMp4Function(); void addSMSFunction(); void addMMSFunction(); void addJavaFunction(); void addPhotoFunction(); void addEBookFunction(); void addRadioFunction(); void addGameFunction(); Mobile getMobile(); }
ConcreteMobileBuilder.java
package com.flyingh.builder; import java.util.ArrayList; import java.util.List; import com.flyingh.ibuilder.MobileBuilder; import com.flyingh.product.Mobile; public class ConcreteMobileBuilder implements MobileBuilder { private List<String> list = new ArrayList<String>(); @Override public void addDialFunction() { // TODO Auto-generated method stub System.out.println("添加打电话功能!"); list.add("打电话"); } @Override public void addMp3Function() { // TODO Auto-generated method stub System.out.println("添加Mp3功能!"); list.add("Mp3"); } @Override public void addMp4Function() { // TODO Auto-generated method stub System.out.println("添加Mp4功能!"); list.add("Mp4"); } @Override public void addSMSFunction() { // TODO Auto-generated method stub System.out.println("添加发短信功能!"); list.add("发短信"); } @Override public void addMMSFunction() { // TODO Auto-generated method stub System.out.println("添加彩信功能!"); list.add("彩信"); } @Override public void addJavaFunction() { // TODO Auto-generated method stub System.out.println("添加Java功能!"); list.add("Java"); } @Override public void addPhotoFunction() { // TODO Auto-generated method stub System.out.println("添加照相机功能!"); list.add("照相机"); } @Override public void addEBookFunction() { // TODO Auto-generated method stub System.out.println("添加电子书功能!"); list.add("电子书"); } @Override public void addRadioFunction() { // TODO Auto-generated method stub System.out.println("添加收音机功能!"); list.add("收音机"); } @Override public void addGameFunction() { // TODO Auto-generated method stub System.out.println("添加游戏功能!"); list.add("游戏"); } @Override public Mobile getMobile() { // TODO Auto-generated method stub return new Mobile(list); } }
Director.java
package com.flyingh.idirector; public interface Director { void construct(); }
ConcreteDirectorA.java
package com.flyingh.director; import com.flyingh.ibuilder.MobileBuilder; import com.flyingh.idirector.Director; public class ConcreteDirectorA implements Director { private MobileBuilder builder; public ConcreteDirectorA(MobileBuilder builder) { super(); this.builder = builder; } public void construct() { builder.addDialFunction(); builder.addSMSFunction(); builder.addMMSFunction(); builder.addMp3Function(); builder.addEBookFunction(); builder.addJavaFunction(); } }
ConcreteDirectorB.java
package com.flyingh.director; import com.flyingh.ibuilder.MobileBuilder; import com.flyingh.idirector.Director; public class ConcreteDirectorB implements Director { private MobileBuilder builder; public ConcreteDirectorB(MobileBuilder builder) { super(); this.builder = builder; } public void construct() { builder.addDialFunction(); builder.addSMSFunction(); builder.addMMSFunction(); builder.addMp3Function(); builder.addMp4Function(); builder.addGameFunction(); builder.addJavaFunction(); builder.addEBookFunction(); builder.addRadioFunction(); } }
Client.java
package com.flyingh.client; import com.flyingh.builder.ConcreteMobileBuilder; import com.flyingh.director.ConcreteDirectorA; import com.flyingh.director.ConcreteDirectorB; import com.flyingh.ibuilder.MobileBuilder; import com.flyingh.idirector.Director; import com.flyingh.product.Mobile; public class Client { public static void main(String[] args) { MobileBuilder builder = new ConcreteMobileBuilder(); Director director = new ConcreteDirectorA(builder); director.construct(); Mobile mobile = builder.getMobile(); System.out.println(mobile); System.out.println("*****************"); builder = new ConcreteMobileBuilder(); director = new ConcreteDirectorB(builder); director.construct(); mobile = builder.getMobile(); System.out.println(mobile); } }
程序运行结果如下:
添加打电话功能! 添加发短信功能! 添加彩信功能! 添加Mp3功能! 添加电子书功能! 添加Java功能! 手机拥有功能:[打电话,发短信,彩信,Mp3,电子书,Java] ***************** 添加打电话功能! 添加发短信功能! 添加彩信功能! 添加Mp3功能! 添加Mp4功能! 添加游戏功能! 添加Java功能! 添加电子书功能! 添加收音机功能! 手机拥有功能:[打电话,发短信,彩信,Mp3,Mp4,游戏,Java,电子书,收音机]
发表评论
文章已被作者锁定,不允许评论。
-
Interpreter
2011-11-24 21:19 839Interpreter Pattern:其意图是给定一个语言, ... -
Visitor
2011-11-24 17:37 659Visitor Pattern:表示一个作用于某对象结构中的各 ... -
Mediator
2011-11-24 16:22 663Mediator Pattern: 用一 ... -
Prototype
2011-11-24 11:32 605Prototype Pattern:就是通过复制现在已经存在的 ... -
Memento
2011-11-23 21:56 685Memento Pattern:在不破坏封闭的前提下,捕获一个 ... -
Flyweight
2011-11-23 18:38 651享元模式以共享的方式高效地支持大量的细粒度对象. 1).Fl ... -
Bridge
2011-11-22 15:05 685桥梁模式的用意是"将抽象化(Abstraction) ... -
Chain Of Responsibility
2011-11-21 23:05 658Chain Of Responsibility Pattern ... -
Abstract Factory
2011-11-21 22:00 644下面以Mac和PC的CPU和RAM为例,代码如下: Cpu. ... -
Proxy
2011-11-18 18:47 661Proxy Pattern:对其他对象提供一种代理以控制对这个 ... -
State
2011-11-18 15:57 678State Pattern:当一个对象的内在状态改变时允许改变 ... -
Composite
2011-11-17 17:09 795Composite Pattern:意图是将对象组合成树形结构 ... -
Iterator
2011-11-16 16:56 891Iterator Pattern:其意图是提供一种方法顺序访问 ... -
Template Method
2011-11-16 11:43 661模板方法模式:在一个方法中定义一个算法的骨架,而将一些实 ... -
Facade
2011-11-15 23:00 598Facade Pattern:为子系统中的各类(或结构与方法) ... -
Adapter
2011-11-15 21:43 632Adapter Pattern:将一个类的接口,转换成客户所期 ... -
Command
2011-11-14 23:06 5741).下面以Boss和Clerk为例: Clerk.java ... -
Factory Method
2011-11-13 20:44 595Simple Factory: 以Fruit为例,以下是实现 ... -
Decorator
2011-11-12 23:09 572装饰者可以在所委托被装饰者的行为之前与/或之后,加上自己的 ... -
Observer
2011-11-12 21:30 601观 察 者 模 式 定义了对象之间的一对多依赖,这样一来 ...
相关推荐
C++Builder是一款由Embarcadero Technologies开发的集成开发环境(IDE),主要针对C++语言,为Windows平台提供快速应用程序开发(RAD)解决方案。C++Builder5和C++Builder6是该系列的不同版本,分别发布于2001年和...
**PowerBuilder 12.0 简介** PowerBuilder是一款由Sybase(现已被SAP收购)开发的集成开发环境(IDE),主要用于构建企业级的数据库应用系统。这款工具以其强大的数据窗口(DataWindow)组件和面向对象的编程模型而...
PowerBuilder 8.3 是一款历史悠久的开发工具,主要用于构建企业级的应用程序,尤其是在数据库应用领域。这款软件由Sybase公司开发,以其独特的DataWindow控件和可视化编程环境而闻名。下面将详细介绍PowerBuilder ...
PowerBuilder 11.5的新功能 包括部署PowerBuilder非可视对象(NVOs),包括.NET编译和.NET Smart Client应用 快速使用,并在Web上部署包括Web Services 和 PowerBuilder应用在内的PowerBuilder非可视对象(NVOs) 支持...
PowerBuilder 控件使用手册 PowerBuilder 是一款功能强大且流行的开发工具,提供了多种控件来满足不同的开发需求。在本手册中,我们将详细介绍 PowerBuilder 控件的使用方法,包括 Microsoft Web Browser 控件的...
C++ Builder 2007 是一款由Embarcadero Technologies公司推出的集成开发环境(IDE),专注于C++语言的编程工具。它集成了编译器、调试器、代码编辑器和项目管理工具,旨在帮助开发者高效地创建Windows应用程序。这款...
### PowerBuilder 9.0 下载与简介 #### 一、PowerBuilder 9.0 概述 PowerBuilder 是一款由美国 Sybase 公司(现已被 SAP 收购)开发的企业级应用快速开发工具。它结合了强大的数据库管理功能与用户友好的图形界面...
C++Builder 6是一款由Borland公司(后被Embarcadero Technologies收购)开发的集成开发环境(IDE),主要用于C++编程语言的应用程序开发。它结合了强大的编译器、调试器、可视化设计工具和其他实用功能,为开发者...
平台构建器(Platform Builder)是微软提供的一款强大的操作系统开发工具,主要用于构建定制化的嵌入式操作系统,如Windows CE。在本场景中,我们关注的是Platform Builder 5.0,它是Windows CE 5.0版本的开发环境。...
《DspBuilder中文基础教程》是针对初学者的教程,介绍如何使用DspBuilder进行硬件设计。本教程以两个简单电路模型为例,详细阐述了Matlab、DSPBuilder、QuartusII这三个工具软件联合开发的设计流程。 1. EDA技术与...
PowerBuilder 2019是Sybase公司推出的一款强大的企业级应用程序开发工具,主要用于构建数据库驱动的Windows应用程序。它以其直观的图形用户界面(GUI)和数据窗口组件而闻名,大大简化了数据库应用的开发过程。在本...
WindowBuilder是Eclipse IDE中的一个强大工具,专用于简化Swing和 SWT(Java窗口小部件工具包)应用程序的开发。1.9.3版本的WindowBuilder提供了对这些框架的直观图形化界面,允许开发者通过拖放组件来创建用户界面...
C++Builder 6.0 是一个强大的集成开发环境(IDE),专为使用C++语言进行Windows应用程序开发设计。它提供了丰富的工具集、图形化界面设计、数据库连接支持以及高效的编译器。在安装C++Builder 6.0时,有时可能会遇到...
PowerBuilder 6.5是一款由Sybase公司推出的经典C/S(Client/Server)架构下的应用程序开发工具,尤其在企业级信息系统管理中具有广泛的应用。它以其强大的数据窗口控件、直观的图形化界面以及高效的开发效率,深受...
WindowBuilder是Eclipse集成开发环境(IDE)中的一个强大工具,专门用于简化Java GUI(图形用户界面)的设计工作。在Eclipse Mars 4.5版本中,安装WindowBuilder可能需要一些特殊的步骤,因为并不是所有公开的教程都...
PowerBuilder 12.5.2 5629 是一款强大的、面向对象的软件开发工具,主要用于构建企业级的应用程序。它由Sybase(现为SAP的一部分)开发,以其直观的图形用户界面(GUI)和数据窗口技术而闻名。这次的更新,即5629...
PowerBuilder 12.5是一款强大的企业级应用开发工具,尤其在数据窗口设计、数据库应用程序构建方面具有显著优势。这款工具由Sybase公司(后被SAP收购)开发,为开发人员提供了高效的可视化编程环境,使得开发人员可以...
C++Builder 6.0 Lite 1.07 是一款历史悠久但依然实用的集成开发环境(IDE),由Borland公司开发。这个版本虽然相对较老,但却因其稳定性和兼容性而受到一部分用户的喜爱,即便是在更新的操作系统如Windows 8.1上也能...
C++Builder 6 Update Pack 4 是一个针对 Borland C++Builder 6 的重要更新程序,旨在提升软件的性能、稳定性和兼容性。这个更新包是C++Builder 6用户必须安装的,以确保他们的开发环境能跟上最新的技术趋势,并解决...
"PowerBuilder精美框架"是一个专为PowerBuilder开发者设计的用户界面(UI)框架,它具有Windows 7的视觉风格,提供了高度封装的组件和控件,使得开发者能够快速构建出与Winform同样美观的界面。这个框架展示了Power...