💡 빌더 패턴?
- 복합객체의 구성요소를 포함한 별도의 클래스를 만들고 이 클래슨느 구성요소를 조합하여 객체를 생성하는 역할을 함.
class Member {
private var name: String = ""
private var gender: String = ""
private var age: Int = 0
private var job: String = ""
class Builder(
// 필수 매개변수
val name: String,
val gender: String) {
// 선택적 매개변수
var age = 25
var job = ""
fun age(age: Int): Builder {
this.age = age
return this
}
fun job(job: String): Builder {
this.job = job
return this
}
fun build(): Member {
return Member(this)
}
}
// Builder 패턴 생성자
constructor(builder: Builder) {
name = builder.name
gender = builder.gender
age = builder.age
job = builder.job
}
}
// 생성
val member = Member.Builder("nayoung","여")
.age(24)
.job("학생")
.build()
💡 빌더 패턴의 장점
- 각 인자의 의미를 파악 하기 쉬움 (가독성)
- 필수 매개변수, 선택 매개변수를 통해 객체를 생성할 때 보다 유연하게 사용 가능 (유연성)
// 필수 매개변수
val member = Member.Builder("nayoung","여")
.build()
// 선택 매개변수
val member = Member.Builder("nayoung", "여") // 필수 인자
.age(24) // 선택적 인자
.build()
💡빌더 패턴 사용
- 생성자 인자가 많을 경우 사용
'안드로이드' 카테고리의 다른 글
[안드로이드] 안드로이드 DialogFragment() 화면 사이즈 조정 (0) | 2022.10.04 |
---|---|
[코틀린] 코틀린 - 고차함수 (1) | 2022.10.03 |
[코틀린] BackingField & Backing Properties (0) | 2022.10.01 |
[안드로이드] Jetpack (0) | 2022.09.30 |
[코틀린] 이미지 로딩 라이브러리 Glide vs Picasso (0) | 2022.09.29 |