Java设计模式-建造者模式

文章目录

背景

一股来自东方的神秘力量吸引了联邦军、影镜军团和原生种的兴趣。三大阵营不谋而合来到了山东的蚩尤墓,这股强大的气息,墓下必定埋藏着不可告人的秘密。
为了争夺这股力量,三方进行了激烈的战斗,伤亡惨重。我方机师布利特驾驶他的轰格特三式遭受原生种的围剿,危在旦夕。
正在危机关头,布利特感应到了这股强大的力量,并且唤醒了埋藏在蚩尤墓里的龙虎王机体。在这个时候,龙虎王和三式合二为一。
我们有幸去地府采访了龙虎王的创始人(扯淡~),蚩尤先生,让他来告诉我们龙虎王这样传奇的机体是怎么诞生的。

实现

机体抽象类

public abstract class Robot {

    private String head;
    
    private String body;
    
    private String hands;
    
    private String foots;
    
    public String getHead() {
        return head;
    }

    public void setHead(String head) {
        this.head = head;
    }

    public String getBody() {
        return body;
    }

    public void setBody(String body) {
        this.body = body;
    }

    public String getHands() {
        return hands;
    }

    public void setHands(String hands) {
        this.hands = hands;
    }

    public String getFoots() {
        return foots;
    }

    public void setFoots(String foots) {
        this.foots = foots;
    }
    
}

龙虎王机体

/**
 * 古代人形机甲:龙虎王,格斗能力非常强
 */
public class DragonTigerKingRobot extends Robot {
    
    @Override
    public String toString() {
        return "龙虎王" + "\n" + "蚩尤" + "\n" + getHead() + "\n" + getBody() + "\n" + getHands() + "\n" + getFoots() + "\n";
    }
    
}

机体建造者接口

public interface IRobotBuilder {
    
    void createHead();
    
    void createBody();
    
    void createHands();
    
    void createFoots();
    
    Robot getRobot();
}

龙虎王机体建造者

/**
 * 龙虎王建造者
 */
public class DragonTigerKingRobotBuilder implements IRobotBuilder {
    
    private Robot robot;
    
    public DragonTigerKingRobotBuilder() {
        super();
        this.robot = new DragonTigerKingRobot();
    }

    @Override
    public void createHead() {
        robot.setHead("龙头虎脑真可爱!");
    }

    @Override
    public void createBody() {
        robot.setBody("心较比干多一窍!");
    }

    @Override
    public void createHands() {
        robot.setHands("春葱玉指如兰花!");
    }

    @Override
    public void createFoots() {
        robot.setFoots("三寸金莲似元宝!");
    }

    @Override
    public Robot getRobot() {
        return robot;
    }
    
}

**蚩尤:传说中龙虎王的创造者

/**
 * 传说龙虎王是蚩尤创造的(没错,就是这么扯!)
 */
public class Chiyou {
    
    private IRobotBuilder builder;

    public Chiyou(IRobotBuilder builder) {
        super();
        this.builder = builder;
    }
    
    public void createComponent() {
        this.builder.createHead();
        this.builder.createBody();
        this.builder.createHands();
        this.builder.createFoots();
    }
    
    public Robot getRobot() {
        return this.builder.getRobot();
    }
    
}

测试

public class Test {

    public static void main(String[] args) {
        IRobotBuilder builder = new DragonTigerKingRobotBuilder();
        Chiyou chiyou = new Chiyou(builder);
        chiyou.createComponent();
        Robot robot = chiyou.getRobot();
        System.out.println(robot);
    }
    
}

测试结果

龙虎王
蚩尤
龙头虎脑真可爱!
心较比干多一窍!
春葱玉指如兰花!
三寸金莲似元宝!
总结

实际上根据当地人的说法,龙虎王并非由蚩尤创造的,而是由一家神秘的民间组织–蓝翔创造的。不知道我们能否联系得上这个组织。请看下回分解~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值