[swift] 클래스의 빌더(Builder) 패턴 활용
클래스의 빌더(Builder) 패턴은 객체의 생성 과정을 추상화하여 복잡한 객체를 만들기 위해 사용됩니다. 이 패턴을 활용하면 객체 생성에 필요한 매개변수들을 논리적 단계에 따라 전달하고, 객체를 구성하고 반환하는 로직을 분리할 수 있습니다.
빌더(Builder) 패턴 예시
class Person {
let name: String
let age: Int
let address: String
let phoneNumber: String
init(builder: PersonBuilder) {
self.name = builder.name
self.age = builder.age
self.address = builder.address
self.phoneNumber = builder.phoneNumber
}
}
class PersonBuilder {
var name: String = ""
var age: Int = 0
var address: String = ""
var phoneNumber: String = ""
func withName(_ name: String) -> PersonBuilder {
self.name = name
return self
}
func withAge(_ age: Int) -> PersonBuilder {
self.age = age
return self
}
func withAddress(_ address: String) -> PersonBuilder {
self.address = address
return self
}
func withPhoneNumber(_ phoneNumber: String) -> PersonBuilder {
self.phoneNumber = phoneNumber
return self
}
func build() -> Person {
return Person(builder: self)
}
}
위의 예시에서 PersonBuilder
클래스는 Person
객체를 생성하는 데 사용됩니다. 각각의 with
메서드는 해당 필드 값을 설정하고, build
메서드는 최종적으로 Person
객체를 생성합니다.
빌더(Builder) 패턴의 장점
빌더(Builder) 패턴을 활용하면 여러 개의 선택적 매개변수를 가진 객체를 생성할 때 매우 유용합니다. 객체에 필요한 매개변수 수가 많거나 조합이 복잡한 경우, 빌더 패턴을 사용하여 객체를 생성하면 코드의 가독성과 유연성이 향상됩니다.
요약
빌더(Builder) 패턴은 객체의 생성 과정을 모델링하고 객체를 생성하는 데 필요한 논리적인 순서를 제공하는 데 유용합니다. 이 패턴은 복잡한 객체를 만들 때 코드의 가독성과 유지보수성을 향상시키며, 선택적인 매개변수를 가진 객체의 생성을 단순화합니다.
참고 자료: