`
lyunabc
  • 浏览: 531734 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

设计模式之四 --- 建造(Builder)模式

 
阅读更多

【1】基本概念

建造(Builder)模式是一种对象构建的设计模式,它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。

【2】简单分析

我们先来看一下该设计模式的UML结构图


上图是Strategy 模式的结构图,让我们可以进行更方便的描述:

  • Builder
为创建一个Product对象的各个部件指定抽象接口。
  • ConcreteBuilder
实现Builder的接口以构造和装配该产品的各个部件。
定义并明确它所创建的表示。
提供一个检索产品的接口
  • Director
构造一个使用Builder接口的对象。
  • Product
表示被构造的复杂对象。ConcreateBuilder创建该产品的内部表示并定义它的装配过程。
在以下情况使用生成器模式:
包含定义组成部件的类,包括将这些部件装配成最终产品的接口。
  • 当创建复杂对象(这些对象内部构建间的建造顺序通常是稳定的)的算法应该独立于该对象的组成部分以及它们的装配方式时;
  • 当构造过程必须允许被构造的对象有不同的表示时。

【3】如何用java语言来实现该模式

下面以一个简单的例子来展示该模式,先看下代码结构图:


3.1 先创建一个Product类--产品类:

3.2 创建抽象建造者类:PizzaBuilder.java

3.3 创建具体建造者类

HawaiianPizzaBuilder.java源码:

SpicyPizzaBuilder.java源码:

3.4 创建指挥者(Director)类:Waiter.java

3.5 测试类:BuilderClient.java

【4】程序运行结果:

通过上面我们可以看到:建造者模式的好处就是使得建造代码与表示代码分离,由于建造者隐藏了该产品是如何组装的,所以若需要改变一个产品的内部表示,只需要再定义一个具体的建造者就可以了。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics