08_建造者模式(方式二)

一、实体类

package com.study.builder_pattern.v2;

public class Computer {
    private String monitor;
    private String mouse;
    private String host;
    private String cpu;

    private Computer(ComputerBuilder computerBuilder){
        this.monitor=computerBuilder.monitor;
        this.mouse=computerBuilder.mouse;
        this.host=computerBuilder.host;
        this.cpu=computerBuilder.cpu;
    }

    @Override
    public String toString() {
        return "Computer{" +
                "monitor='" + monitor + '\'' +
                ", mouse='" + mouse + '\'' +
                ", host='" + host + '\'' +
                ", cpu='" + cpu + '\'' +
                '}';
    }

    public static class ComputerBuilder{
        private String monitor;
        private String mouse;
        private String host;
        private String cpu;

        public ComputerBuilder buildMonitor(String monitor){
            this.monitor=monitor;
            return this;
        }

        public ComputerBuilder buildMouse(String mouse){
            this.mouse=mouse;
            return this;
        }
        public ComputerBuilder buildHost(String host){
            this.host=host;
            return this;
        }
        public ComputerBuilder buildCpu(String cpu){
            this.cpu=cpu;
            return this;
        }

        public Computer build(){
            return new Computer(this);
        }

    }
}

二、主程序调用

2.1 Kotlin
package com.study.builder_pattern.v2

fun main() {
    val computer = Computer.ComputerBuilder().run {
        buildMonitor("华为显示器")
        buildMouse("华为鼠标")
        buildHost("华为主机")
        buildCpu("华为cpu")
        build()
    }
    println(computer)
}
2.2 Kotlin
package com.study.builder_pattern.v2;

public class MainClient {
    public static void main(String[] args) {
        Computer computer = new Computer.ComputerBuilder()
                .buildMonitor("华为显示器")
                .buildMouse("华为鼠标")
                .buildHost("华为主机")
                .buildCpu("华为cpu")
                .build();

        System.out.println(computer);
    }
}

三、总结

使用Kotlin语言,构建者模式值得称道的链式调用好像不是那么香了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值