21xrx.com
2024-11-10 00:19:29 Sunday
登录
文章检索 我的文章 写文章
Java语言实现创建者模式——基本代码
2023-06-18 01:39:24 深夜i     --     --

创建者模式是一种常见的设计模式,其目的是抽象出对象的创建过程,以便在不同的场景下复用对象的创建逻辑。本文将介绍使用Java语言实现创建者模式的基本代码程序。

创建者模式的定义

创建者模式是一种对象创建型设计模式,其目的是封装复杂对象的创建过程,使得其创建逻辑与实现细节与客户端代码分离开来。创建者模式将对象的创建过程分步进行,在不同的步骤中实现不同的构建逻辑,从而使得其创建过程灵活可扩展,同时隐藏了具体的创建细节,降低了对客户端代码的影响。

创建者模式的基本结构

创建者模式通常包含以下基本组件:

1.抽象建造者(Builder):抽象建造者定义了创建产品对象的接口,并规定了具体的部件构造与装配的顺序,但不涉及产品类的细节。

2.具体建造者(ConcreteBuilder):具体建造者实现了抽象建造者接口,具体实现产品的构造与装配,同时也提供了组装产品的公共接口,最终返回组装后的产品对象。

3.指导者(Director):指导者负责控制建造的过程,提供组装产品的顺序与具体步骤,客户端代码通过指导者来创建复杂对象。

4.产品(Product):具体的产品对象,由具体建造者逐步构造与装配而成。

基于以上的基本结构,我们可以使用Java语言来实现创建者模式的基本代码程序。具体实现如下:

//定义产品类

public class Product {

  private String partA;

  private String partB;

  private String partC;

  //设置产品部件A、B、C

  public void setPartA(String partA)

    this.partA = partA;

  public void setPartB(String partB)

    this.partB = partB;

  public void setPartC(String partC)

    this.partC = partC;

  //打印产品信息

  public void show() {

    System.out.println("PartA is: " + partA);

    System.out.println("PartB is: " + partB);

    System.out.println("PartC is: " + partC);

  }

}

//定义抽象建造者类

public abstract class Builder {

  //构建产品部件A

  public abstract void buildPartA();

  //构建产品部件B

  public abstract void buildPartB();

  //构建产品部件C

  public abstract void buildPartC();

  //获取最终构建的产品对象

  public abstract Product getResult();

}

//定义具体建造者类

public class ConcreteBuilder extends Builder {

  private Product product = new Product();

  //构建产品部件A

  @Override

  public void buildPartA() {

    product.setPartA("PartA");

  }

  //构建产品部件B

  @Override

  public void buildPartB() {

    product.setPartB("PartB");

  }

  //构建产品部件C

  @Override

  public void buildPartC() {

    product.setPartC("PartC");

  }

  //获取最终构建的产品对象

  @Override

  public Product getResult()

    return product;

}

//定义指导者类

public class Director {

  //指导者指定建造流程并返回最终的构建结果

  public Product construct(Builder builder) {

    builder.buildPartA();

    builder.buildPartB();

    builder.buildPartC();

    return builder.getResult();

  }

}

//客户端代码

public class Client {

  public static void main(String[] args) {

    //创建指导者对象

    Director director = new Director();

    //创建具体建造者对象

    Builder builder = new ConcreteBuilder();

    //客户端需要组装的产品对象

    Product product = director.construct(builder);

    //打印组装后的产品信息

    product.show();

  }

}

根据以上的代码程序,我们可以得出以下3个关键词:

1.创建者模式

2.Java语言

3.指导者

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复