자바 디자인 모델 의 작성 자 모드 (Builder 모드)
7220 단어 알고리즘
Builder 모드 는 복잡 한 대상 을 구축 하 는 데 사용 되 는 모드 입 니 다.복잡 한 대상 의 구축 과 그 표 시 를 분리 시 켜 같은 구축 과정 에서 서로 다른 표 시 를 만 들 수 있 도록 하 는 것 이다.
다 중 매개 변수 구조 함 수 를 Builder 모드 로 대체 하 는 것 은 비교적 좋 은 실천 법칙 이다.
장면
차 는 여러 가지 로 나 뉜 다.
자동차: 이름, 가격, 엔진, 천막 이 있 습 니 다.
전동 삼륜차: 이름, 가격, 천막 이 있 습 니 다.
자전거: 이름, 가격, 차 가 안 막 혀 요.
사실은 모든 차 에 구조 함 수 를 써 도 실현 할 수 있 지만 차 가 많 으 면 유지 하기 어렵다.창조 자 모델 은 바로 이런 문 제 를 해결 하 는 것 이다.
예 를 들다
다기 능 차 정의
/**
* Created by yunzhao.liu on 2017/12/27
*/
public class Car {
private String name;//
private int price;//
private boolean isTrafficjam;//
private boolean isHaveEngine;//
private boolean isHaveShed;//
public static class Builder {
private String name;//
private int price;//
private boolean isTrafficjam;//
private boolean isHaveEngine;//
private boolean isHaveShed;//
//
public Builder() {
}
public Builder setName(String name) {
this.name = name;
return this;
}
public Builder setPrice(int price) {
this.price = price;
return this;
}
public Builder setTrafficjam(boolean trafficjam) {
isTrafficjam = trafficjam;
return this;
}
public Builder setHaveEngine(boolean haveEngine) {
isHaveEngine = haveEngine;
return this;
}
public Builder setHaveShed(boolean haveShed) {
isHaveShed = haveShed;
return this;
}
public Car build() { // ,
return new Car(this);
}
}
private Car(Builder b) {
name = b.name;
price = b.price;
isTrafficjam = b.isTrafficjam;
isHaveEngine = b.isHaveEngine;
isHaveShed = b.isHaveShed;
}
@Override
public String toString() {
return "Car{" +
"name='" + name + '\'' +
", price=" + price +
", isTrafficjam=" + isTrafficjam +
", isHaveEngine=" + isHaveEngine +
", isHaveShed=" + isHaveShed +
'}';
}
}
테스트 클래스
/**
* Created by yunzhao.liu on 2017/12/27
*
*/
public class TestBuilder {
public static void main(String[] args) {
// A6
Car aodi = new Car.Builder()
.setName(" A6")
.setPrice(200000)
.setTrafficjam(true)
.setHaveEngine(true)
.setHaveShed(true)
.build();
String s1 = aodi.toString();
System.out.println(s1);
//
Car tricycle = new Car.Builder()
.setName(" ")
.setPrice(2500)
.setHaveEngine(true)
.setHaveShed(true)
.build();
String s2 = tricycle.toString();
System.out.println(s2);
//
Car bicycle = new Car.Builder()
.setName(" ")
.setPrice(300)
.setTrafficjam(false)
.build();
String s3 = bicycle.toString();
System.out.println(s3);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Codility Lesson3】FrogJmpA small frog wants to get to the other side of the road. The frog is currently located at position X and wants to get to...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.