08_Builderモード(方法2)

1つ、エンティティクラス

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);
    }
}

3、まとめ

Kotlinを使用すると、ビルダーパターンの称賛に値するチェーンコールはそれほど香りがよくないようです。

おすすめ

転載: blog.csdn.net/Duckdan/article/details/109770571