「Patternを設計」ビルダーモード
ビルダーモード
個別のBuilderクラスを作成し、値を入力した後にインスタンスを返します.
各パラメータを受け入れ、すべてのパラメータを受け入れ、これらのパラメータを組み合わせて使用するアレイ.
こうぞう
インプリメンテーション
public class Member {
private final int id;
private final String password;
private final String name;
private final int age;
private final String email;
private final String phone;
public static class Builder {
// Required parameters(필수 인자)
private final int id;
// Optional parameters - initialized to default values(선택적 인자는 기본값으로 초기화)
private String password = "";
private String name = "";
private int age = 0;
private String email = "";
private String phone = "";
public Builder(int id) {
this.id = id;
}
public Builder password(String password) {
password = password;
return this; // 이렇게 하면 . 으로 체인을 이어갈 수 있다.
}
public Builder name(String name) {
name = name;
return this;
}
public Builder age(int age) {
age = age;
return this;
}
public Builder email(String email) {
email = email;
return this;
}
public Builder phone(String phone) {
phone = phone;
return this;
}
public Member build() {
return new Member(this);
}
}
private Member(Builder builder) {
id = builder.id;
password = builder.password;
name = builder.name;
age = builder.age;
email = builder.email;
phone = builder.phone;
}
}
Member member = new Member.Builder(1)
.name("name")
.age(27)
.build();
リファレンス
@Getter
@Builder
public class Member {
private final int id;
private final String password;
private final String name;
private final int age;
private final String email;
private final String phone;
...
@Builder
だけでモードを実現できます...!メリットとデメリット
仕事ではEffective Javaで記述されている概念を使用していますが、後でそれぞれ学習して追加する他の概念もあります.
関連項目:
Reference
この問題について(「Patternを設計」ビルダーモード), 我々は、より多くの情報をここで見つけました https://velog.io/@cham/Design-Pattern-빌더-패턴テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol