객체 생성 관련 패턴 (Builder, Singleton)
Updated:
🔷 Builder Pattern
struct Friend {
var name: String? = ""
var age: Int = 0
}
// 친구 struct 을 생성하는 빌더 클래스
class FriendBuilder {
// 빌더가 만드는 친구 struct
private var friend: Friend = Friend()
public func withName(_ name: String) ->
FriendBuilder {
// 만들고자 하는 것을 설정하고
friend.name = name
// 빌더 자기 자신을 반환합니다
// 이를 통해 체인처럼 유연하게 설정이 사능
return self
}
public func withAge(_ age: Int) ->
FriendBuilder {
friend.age = age
return self
}
// 마지막으로 빌더가 만든 녀식을 반환하면서 마무리
public func build () -> Friend {
return self.friend
}
}
// 디자인 패턴은 크게 3가지로 나뉩니다
// 객체 생성, 행위, 구조
// 객체생성 중 빌더 패턴을 이용해
// 객체 생성을 유연하게 할 수 있습니다.
let myFriend = FriendBuilder()
.withName("철수")
.withAge(20)
.build()
print("myFriend: ", myFriend)
// myFriend: Friend(name: Optional("철수"), age: 20)
🔷 Singleton Pattern
객체 생성시 싱글턴 패턴으로 한 메모리 공간에 값을 올릴 수 있씁니다
class Pet {
static var shared = Pet()
private init () {}
}
let myPet = Pet.shared
let myPet2 = Pet.shared
// xcode 에서 break 걸고
// 메모리 주소를 확인하면
// 같은 주소를 가리치는것을 확인 할 수 있음
Reference
Swift Tip of the day - 스위프트 기초 문법 - https://spangle-wedelia-2dc.notion.site/Swift-Tip-of-the-day-c428bfd990674bcfa2a4973e5d08c4eb
꼼꼼한 재은 씨의 스위프트 문법편 - https://book.jacobko.info/#/book/1186710233
Leave a comment