Design Patterns Builder Pattern - Java Design Patterns - Builder Pattern

I wrote an article on the builder mode before, and found that I didn't understand it at a glance, Khan. . . Well written low. I decided to re-write it and I will understand it at a glance. Okay, I can go directly to the code. To use it, I can directly set the format:

builder pattern class


/**
 * 
 * 建造者模式
 * 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
 * */
public class BuilderPattern {
    private String language;
    private String name;
    public BuilderPattern(Builder builder){
        this.language = builder.language;
        this.name = builder.name;
    }

    //方法逻辑
    public void showInfo() {
        System.out.println("name:"+name);
        System.out.println("language:"+language);
    }

    //Builder 建造者
    public static class Builder{
        private String language = "";
        private String name = "";

        public Builder(){
        }

        //每次设置参数返回自己方便之后继续设置参数
        public Builder setLanguage(String language){
            this.language = language;
            return this;
        }
        //每次设置参数返回自己方便之后继续设置参数
        public Builder setName(String name){
            this.name = name;
            return this;
        }

        //创建BuilderPattern实例
        public BuilderPattern create(){
            return new BuilderPattern(this);
        }
    }
}

Client class



public class Client {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //使用BuilderPattern
        new BuilderPattern.Builder().setLanguage("c++").create().showInfo();
        new BuilderPattern.Builder().setName("java").setName("BuilderPattern").create().showInfo();
    }

}

If you don't understand, run it and you'll understand

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325710827&siteId=291194637