디자인 모델 의 건설 자 모델 간단명료 예시

건설 자 모드 는 복잡 한 대상 의 생 성과 표 시 를 분리 합 니 다. 같은 생 성 과정 을 사용 하면 서로 다른 표 시 를 만 들 수 있 습 니 다.
응용 실례
자바 에서 건축 자 모델 은 흔히 볼 수 있 는 디자인 모델 로 StringBuilder 와 okhttp 3. Request 는 모두 건축 자 모델 을 응용 했다.
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
        .url("http://www.baidu.com")
        .build();

이루어지다
우 리 는 Human 류 의 건설 자 모델 을 실현 할 것 이다.
우선 Human 클래스 만 들 기
public  class Human {
    private String name;
    private int age;
    private int weight;
    private int height;
    //-----------Setter and Getter--------------------
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
    public int getAge() { return age; }
    public void setAge(int age) { this.age = age; }
    public int getWeight() { return weight; }
    public void setWeight(int weight) { this.weight = weight; }
    public int getHeight() { return height; }
    public void setHeight(int height) { this.height = height; }
    //-----------Setter and Getter--------------------
    @Override
    public String toString(){
        return getName() + "        " + getAge() +
                "        " + getWeight() + "        " +getHeight();
    }
}

빌 더 인터페이스 만 들 기
public interface Builder {
    Builder setAge(int age);
    Builder setName(String name);
    Builder setWeight(int weight);
    Builder setHeight(int height);
    Human build();
}

ConcreteBuilder 클래스 를 만 듭 니 다. 이 클래스 를 사용 하면 Human 대상 을 구축 할 수 있 습 니 다.
public class ConcreteBuilder implements Builder {
    private Human human;

    @Override
    public Builder setAge(int age) {
        this.human.setAge(age);
        return this;
    }
    @Override
    public Builder setName(String name) {
        this.human.setName(name);
        return this;
    }
    @Override
    public Builder setWeight(int weight) {
        this.human.setWeight(weight);
        return this;
    }
    @Override
    public Builder setHeight(int height) {
        this.human.setHeight(height);
        return this;
    }
    @Override
    public Human build() {
        return this.human;
    }
    public ConcreteBuilder(){
        this.human = new Human();
    }
}

데모 사용
public class BuilderDemo {
    public static void main(String[] args){
        Human human = new ConcreteBuilder()
                .setAge(21)
                .setName("Amos")
                .setHeight(176)
                .setWeight(130)
                .build();
        System.out.println(human);
    }
}

출력:
Amos        21        130        176

자바 구덩이 매 뉴 얼.지식 을 나 누고 함께 진보 하 다.어서 오 세 요

좋은 웹페이지 즐겨찾기