Builder Pattern

정삼빈·2021년 7월 1일
0

Patterns

목록 보기
1/1

Why

🆖 항상 모든 데이터가 존재 하지 않는다.

  • 사람(이름, 성별, 취미, 핸드폰 ...) → 취미, 핸드폰 등의 정보는 존재하지 않을 수도 있다.
    ex) 사람(영희, 여, null, null) , 사람(철수, 남, null, 010-0000-0000)
    💢 번거롭고 가독성이 낮음

🆖 데이터 초기화 시 입력 순서가 변경될 수도 있다.

Need

✅ 불필요한 생성자 제거
✅ 순서 상관 X
✅ 명시적

How

class Person(){
		private val name: String
		private val gender: String
		private val hobby: String
		private val phone: String

	class Builder(){
		var name = ""
		var gender = ""
		var hobby = ""
		var phone = ""

		fun setName(name:String): String{
			this.name = name
			retrun name
		}

		fun setGender(gender:String): String{
			this.gender= gender
			retrun gender
		}

		...

		fun build(){
			return Person(name, gender, hobby, phone)
		}
	}
}
val younghee: Person = Builder.setName("younghee").setGender("여").build()
val chulsu: Person = Builder.setName("chulsu").setGender("남").setPhone("010-0000-0000").build()
profile
studying android ..

0개의 댓글