建造者模式
建造者模式(Builder Pattern)又叫生成器模式,是一种对象构建模式。它可以将复杂对象的构建过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构建出不同表现(属性)的对象。
构建者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。
建造者模式的四个角色
- Product(产品角色):一个具体的产品对象。
- Builder(抽象建造者):创建一个 Product 对象的各个部件指定的接口或抽象类。
- ConcreteBuilder(具体建造者):实现Builder 接口,构建和装配各个部件。
- Director(指挥者):构建一个使用 Builder 接口的对象。它主要是用于创建一个复杂对象。它主要有两个作用,一是隔离了客户与对象的产生过程,二是负责控制产品对象的生产过程。
举一个栗子
用建造者模式创建一个普通人和超人。
产品角色:Product
public class Role {
private String head; //头部
private String face; //脸部(脸部依赖于头部)
private String body; //身体
private Double hp; //生命值
private Double sp; //能量值
private Double mp; //魔法值
//setter and getter
// toString
}
抽象建造者:Builder
public abstract class Builder {
protected Role role = new Role();
public abstract void buildHead();
public abstract void buildFace();
public abstract void buildBody();
public abstract void buildHp