java建造者模式 的用处
时间: 2023-12-31 14:24:58 浏览: 72
建造者模式在Java中的用处是在创建一个复杂对象时,将其构造过程与表示分离,使得同样的构造过程可以创建不同的表示。它可以解决当一个类构造器需要传入很多参数时,代码可读性差、容易引入错误的问题。通过使用建造者模式,可以将复杂对象的构建过程封装在一个Builder类中,使得客户端只需要关注需要设置的属性,而不需要关心具体的构建过程。
建造者模式的优点包括:
1. 可以隐藏复杂对象的创建过程,使得客户端代码更加简洁和易于理解。
2. 可以灵活地改变产品的内部表示,而不影响客户端的使用。
3. 可以将构造过程逐步细化,使得构造过程更加灵活和可控。
下面是一个简单的Java建造者模式的示例代码:
```java
// 产品类
class Product {
private String part1;
private String part2;
public void setPart1(String part1) {
this.part1 = part1;
}
public void setPart2(String part2) {
this.part2 = part2;
}
public void show() {
System.out.println("Part 1: " + part1);
System.out.println("Part 2: " + part2);
}
}
// 建造者接口
interface Builder {
void buildPart1();
void buildPart2();
Product getResult();
}
// 具体建造者类
class ConcreteBuilder implements Builder {
private Product product = new Product();
public void buildPart1() {
product.setPart1("Part 1");
}
public void buildPart2() {
product.setPart2("Part 2");
}
public Product getResult() {
return product;
}
}
// 指挥者类
class Director {
private Builder builder;
public Director(Builder builder) {
this.builder = builder;
}
public void construct() {
builder.buildPart1();
builder.buildPart2();
}
}
// 客户端代码
public class Main {
public static void main(String[] args) {
Builder builder = new ConcreteBuilder();
Director director = new Director(builder);
director.construct();
Product product = builder.getResult();
product.show();
}
}
```
这个示例中,Product是要构建的复杂对象,Builder是建造者接口,ConcreteBuilder是具体的建造者类,Director是指挥者类,负责指导建造过程。客户端代码通过指挥者类来构建产品,并最终获取到构建好的产品对象。
阅读全文