๐ŸŽ Apple/iOS

[iOS] Singleton ํŒจํ„ด์„ ํ™œ์šฉํ•˜๋Š” ๊ฒฝ์šฐ

JINiOS 2023. 12. 21. 18:06
728x90

Singleton

  • ์—ฌ๋Ÿฌ ๊ฐ์ฒด์—์„œ ๊ณต์šฉ์œผ๋กœ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
  • ์ผ๋ฐ˜์ ์œผ๋กœ shared๋ผ๋Š” ์ด๋ฆ„์˜ ์ƒ์ˆ˜๋ฅผ ๋งŒ๋“ ๋‹ค.
  • static ํ‚ค์›Œ๋“œ๋ฅผ ๋ถ™์ธ๋‹ค.
  • ์ด๋‹ˆ์…œ๋ผ์ด์ €๋ฅผ private์œผ๋กœ ๋งŒ๋“ค์–ด์„œ, ์™ธ๋ถ€์—์„œ ์ƒ์„ฑ์„ ๋ถˆ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์•ผ ํ•œ๋‹ค.
  • ์˜ˆ์‹œ
    • ํ™˜๊ฒฝ์„ค์ •
    • ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์ฒ˜๋ฆฌ
    • ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ

Singleton์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

  • ๋ฐ์ดํ„ฐ ๊ณต์œ (ํ•˜๋‚˜์˜ ๊ฐ์ฒด ์ง€์†์  ์ฐธ์กฐ)
  • ๋ฉ”๋ชจ๋ฆฌ ์ ˆ์•ฝ

์ฝ”๋“œ ์˜ˆ์‹œ

class Singleton {
	static let shared: Singleton = Singleton()
	
	var numOfBook: Int
	
	private init()
}

Singleton.shared.numOfBook = 10

iOS์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์˜ ๊ฐ์ฒด

let application = UIApplication.shared
let fileManager = FileManager.default
let notification = NotificationCenter.default
let screen = UIScreen.main
let userDefaults = UserDefaults.standard
728x90