TIL

아이템 34 기본 생성자에 이름 있는 옵션 아규먼트를 사용하라

점층적 생성자 패턴

class Pizza {
	val size: String
	val cheese: Int
	val olives: Int
	val bacon: Int
	
	constructor(size: String, cheese: Int, olives: Int, bacon: Int) {
		// ...
	}
	constructor(size: String, cheese: Int, olivies: Int): this(size, chesse, olives, 0)
	// ...
}
class Pizza(
	val size: String,
	val cheese: Int = 0,
	val olives: Int = 0,
	val bacon: Int = 0,
)

val favorite = Pizza("L", olives = 3)

빌더 패턴

val vilagePizza = Pizza.Builder("L")
	.setChesse(1)
	.setOlives(2)
	.setBacon(3)
	.build()