객체 생성 관련 패턴 (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

Categories:

Updated:

Leave a comment