Builder Pattern - DanielWorld/SoftwareTech GitHub Wiki
μμ±μ (constructor) μ μΈμκ°λ€μ λ€μνκ² μ‘°ν©ν΄μ μ¬μ©ν΄μΌ ν λ,
μμ±μ (constructor) κ° μΈλ°μμ΄ λ§μμ§λ μ½λλ₯Ό λ°©μ§νκΈ° μν΄ μ¬μ©νλ Design Pattern
ν΄λμ€ λ΄λΆμ Builder ν΄λμ€κ° μ‘΄μ¬νμ¬ Builder λ₯Ό μ΄μ©ν΄ νμν κ°λ€λ§ λ°μ μ μλλ‘ νλ©°, Builder μΈμ€ν΄μ€λ₯Ό ν΄λμ€μ νμ₯μ μΈμλ‘ λ°μ μμ±λ ν΄λμ€ μΈμ€ν΄μ€λ‘λ§ μ κ·Ό κ°λ₯νλλ‘ νλ λμμΈ ν¨ν΄
μλ₯Ό λ€μ΄, A μλΉμ€μ μ κ·Όν μ μλ access token μ μμ±νλ λΌμ΄λΈλ¬λ¦¬λ₯Ό λ§λ€μ΄ μΈλΆμ λ°°ν¬νλ€κ³ κ°μ μ μΈλΆ 3rd party μ μν©μ λ°λΌμ νμν μΈμκ°λ€μ΄ λ€ λμΌνμ§ μμ μ μλ€.
- λλ custom domain urlμ μ€μ ν΄μ ν μ€νΈ νκ³ μΆμ΄.
- λλ A μλ²μ€ μ±μΌλ‘ λΆν° access token μ λ°λ κ²μ΄ μλλΌ μΉλΈλΌμ°μ λ₯Ό ν΅ν΄μ access token μ κ°μ Έμ€κ³ μΆμλ°?
- μ°λ¦¬ μλΉμ€μλ νμμλ κ°λ€μ μ μμ±μμ λ£λλ‘ μꡬνλκ±°μΌ? ν·κ°λ €..
μ½λ μμ
public class FrameworkSettings {
private String clientId;
private String clientSecret;
private String firmwareVersion;
private String extraInfo;
private String modelId;
FrameworkSettings(Builder builder) {
this.clientId = builder.clientId;
this.clientSecret = builder.clientSecret;
this.firmwareVersion = builder.firmwareVersion;
this.extraInfo = builder.extraInfo;
this.modelId = builder.modelId;
}
public String getClientId() {
return clientId;
}
public String getClientSecret() {
return clientSecret;
}
public String getFirmwareVersion() {
return firmwareVersion;
}
public String getExtraInfo() {
return extraInfo;
}
public String getModelId() {
return modelId;
}
public static class Builder {
private String clientId;
private String clientSecret;
private String firmwareVersion;
private String extraInfo;
private String modelId;
public Builder setClientId(String clientId) {
this.clientId = clientId;
return this;
}
public Builder setClientSecret(String clientSecret) {
this.clientSecret = clientSecret;
return this;
}
public Builder setFirmwareVersion(String firmwareVersion) {
this.firmwareVersion = firmwareVersion;
return this;
}
public Builder setExtraInfo(String extraInfo) {
this.extraInfo = extraInfo;
return this;
}
public Builder setModelId(String modelId) {
this.modelId = modelId;
return this;
}
public FrameworkSettings build() {
if (clientId == null)
throw new RuntimeException("ClientId can't be null!");
return new FrameworkSettings(this);
}
}
}