Java设计模式-建造者模式(1)

来源:互联网 发布:有游戏源码怎么修改 编辑:程序博客网 时间:2024/06/17 01:51

概述:

       建造者模式也叫作创建者模式,属于Java23种设计模式之一。

1:定义

     建造者模式:将复杂对象的创建和表示分离,使得同样的构建过程可以创建不同的表示。

2:使用场景:

    a) 当一个复杂对象需要创建时候,它的内部组成的创建顺序是固定的,但是内部的组成是复杂的

    b)创建的复杂对象的算法独立于该对象的组成部分,也独立于组成部分的装配方法时

3:角色

    a)Builder:抽象创建者角色,这是一个将复杂对象的创建过程抽象化的一个接口,它规范了对象的各个部分的创建,规定了要实现复杂对象的哪个部分的创建,但是不涉及具体对象的创建。’

    b)ConcreateBuilder:具体创建者角色,它实现了Builder接口,具体化对象的创建过程,最后返回一个对象的实例

    c)Director:构造一个使用Builder接口的对象,指导整个构建过程;不涉及具体的产品信息,只负责对象的各个部分完整创建或者按照某种顺序创建

    d)Prodect,产品就是我们要创建的复杂对象,一般来说包含多个部分

4 代码:

   a)Builder抽象创建者接口

  
public abstract class Builder {protected abstract void buildPartA();protected abstract void buildPartB();protected abstract void buildPartC();protected abstract Product getResult();}

b)ConcreateBuilder:具体创建者角色

public class BuilderA extends Builder {private Product product = new Product();@Overrideprotected void buildPartA() {product.add("partA");}@Overrideprotected void buildPartB() {product.add("partB");}@Overrideprotected void buildPartC() {product.add("partC");}@Overrideprotected Product getResult() {return product;}}
 c)Director

 

public class BuilderDirector {private Builder builder;public BuilderDirector(Builder builder) {this.builder = builder;}public Product build() { builder.buildPartA();builder.buildPartB();builder.buildPartC();return builder.getResult();}}
 d)Prodect

public class Product {private List<String> parts = new ArrayList<String>();public void add(String partName) {parts.add(partName);}public void show() {System.out.println("----产品创建----");for (String part : parts) {System.out.println(part);}}}
e)测试代码

public class BuilderTest {public static void main(String[] args) {BuilderDirector director = new BuilderDirector(new BuilderA());Product product = director.build();product.show();}}
f)打印结果

 

结语:使用建造者模式的好处

 a)使用建造者模式可以不用让客户端知道产品内部的创建细节

 b)具体的建造者类之间是相互独立的,这样有利于系统的扩展

 c)具体的建造者之间相互独立可以对建造的过程逐步细化,而不会对其他模块产生任何影响




原创粉丝点击