1. 程式人生 > 遊戲攻略 >《雲頂之弈》11.23版白學麗桑卓運營教程

《雲頂之弈》11.23版白學麗桑卓運營教程

傳統建造者模式 Builder:定義建立的過程,一般是抽象類 ConcreteBuilder:真正的構建過程,重寫Builder中的方法,相當於填充骨架 Director:指揮類,內部封裝了構建的過程。作用是對外提供建立物件的介面,隱藏了建立物件的細節 程式碼:
//Product
@Data
class Person{
    private String head;
    private String body;
    private String armL;
    private String armR;
    private String legL;
    private String legR;
}
//builder
//定義步驟,穩定過程
abstract class BuilderPersonStep {
    public abstract void buildHead();

    public abstract void buildBody();

    
public abstract void buildArmL(); public abstract void buildArmR(); public abstract void buildLegL(); public abstract void buildLegR(); public abstract Person getPerson(); }
//ConcreteBuilder
//建立胖小人
class fatPerson extends BuilderPersonStep {
    private Person person = new Person();

    @Override
    
public void buildHead() { person.setHead("胖小人的頭"); } @Override public void buildBody() { person.setBody("胖小人的身體"); } @Override public void buildArmL() { person.setArmL("胖小人的左胳膊"); } @Override public void buildArmR() { person.setArmR(
"胖小人的右胳膊"); } @Override public void buildLegL() { person.setLegL("胖小人的左腿"); } @Override public void buildLegR() { person.setLegR("胖小人的右腿"); } @Override public Person getPerson() { return person; } }
//Director
class BuilderDirector {
    private BuilderPersonStep builderStep;

    public BuilderDirector(BuilderPersonStep builderStep) {
        this.builderStep = builderStep;
    }

    public Person createPerson() {
        builderStep.buildHead();
        builderStep.buildBody();
        builderStep.buildArmL();
        builderStep.buildArmR();
        builderStep.buildLegL();
        builderStep.buildLegR();
        Person person = builderStep.getPerson();
        return person;
    }
}