1. 程式人生 > >小白初學java設計模式 建造器模式

小白初學java設計模式 建造器模式

使用構造器模式使得類構造器可以伸縮。

package com;

/**
 * Created by Administrator on 2018/9/10/010.
 */
public class App {
    private final String name;
    private final String id;
    private String lelngth;
    private String language;

    public App(Build build) {
        this.name = build.name;
        this.id = build.id;
        this.language = build.language;
        this.lelngth = build.length;
    }

    public String getName() {
        return name;
    }

    public String getId() {
        return id;
    }

    public String getLelngth() {
        return lelngth;
    }

    public void setLelngth(String lelngth) {
        this.lelngth = lelngth;
    }

    public String getLanguage() {
        return language;
    }

    public void setLanguage(String language) {
        this.language = language;
    }

    public static class Build {
        private final String name;
        private final String id;
        private String length;
        private String language;

        public Build(String name, String id) {
            if ("".equals(name)) {
                throw new IllegalArgumentException("引數錯誤");
            }
            this.name = name;
            this.id = id;

        }

        public Build withLength(String length) {
            this.length = length;
            return this;
        }

        public Build withLanguage(String language) {
            this.language = language;
            return this;
        }

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

    }

    public static void main(String[] args) {
        try {
            App app = new App.Build("", "1").withLanguage("chinaese").build();
            System.out.println(app.getLanguage());
        }catch(Exception e){
            //
            //e.printStackTrace(); logger
            System.out.println(e.getMessage());
        }
    }
}