Skip to content

Latest commit

ย 

History

History
57 lines (47 loc) ยท 2.9 KB

211214_static,_Factory_Pattern,_visibleViewController.md

File metadata and controls

57 lines (47 loc) ยท 2.9 KB

211214 static, Factory Pattern, visibleViewController.md

TIL (Today I Learned)

12์›” 14์ผ (ํ™”)

ํ•™์Šต ๋‚ด์šฉ

  • enum์˜ static
  • Factory Pattern
  • topViewController์™€ visibleViewController ย 

๊ณ ๋ฏผํ•œ ์  / ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

[Enum์˜ static ๋ฉ”์†Œ๋“œ, ํ˜น์€ static ๋ณ€์ˆ˜]

  • static ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” ๋ฉ”๋ชจ๋ฆฌ์— data ์˜์—ญ์— ์กด์žฌํ•œ๋‹ค.
  • data์˜์—ญ์€ ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰ํ•˜๊ณ  ๋๋‚  ๋•Œ ๊นŒ์ง€ ๋ฐ์ดํ„ฐ๊ฐ€ ์ฃฝ์ง€์•Š๊ณ  ์‚ด์•„๋‚จ์•„์žˆ๋‹ค.
  • ๋”ฐ๋ผ์„œ ์‚ฌ์šฉ์—ฌ๋ถ€์™€ ์ƒ๊ด€ ์—†์ด ํ•ญ์ƒ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์‚ด์•„์žˆ๋‹ค.
  • ๋งŒ๊ตญ๋ฐ•๋žŒํšŒ ํ”„๋กœ์ ํŠธ ์ค‘์— enum์„ ํ™œ์šฉํ•˜์—ฌ static ๋ฉ”์†Œ๋“œ์™€ static ๋ณ€์ˆ˜๋ฅผ ๋ฌถ์–ด๋‘” ํƒ€์ž…๋“ค์ด ์กด์žฌํ•˜๋Š”๋ฐ, ์ด๋ฅผ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•˜๋ฉด ์ข‹์„์ง€ ๊ณ ๋ฏผํ•ด๋ณด์ž

[Factory Pattern]

  • Factory Pattern์ด๋ž€?
    • ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ์„ ์ •์˜ํ•˜์ง€๋งŒ, ์–ด๋–ค ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ• ์ง€์— ๋Œ€ํ•œ ๊ฒฐ์ •์€ ํ•˜์œ„ ํด๋ž˜์Šค๊ฐ€ ์ •ํ•˜๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•
    • ๊ฐ์ฒด ์ƒ์„ฑ์„ ์„œ๋ธŒ ํด๋ž˜์Šค๊ฐ€ ํ•˜๋„๋ก ์ฒ˜๋ฆฌํ•˜๋Š” ํŒจํ„ด
    • ์ฆ‰, ๊ฐ์ฒด ์ƒ์„ฑ์„ ์บก์Šํ™”ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋กœ ์ธํ•ด ๋ถ€๋ชจ ํด๋ž˜์Šค๋Š” ์ž์‹ ํด๋ž˜์Šค๊ฐ€ ์–ด๋–ค ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š”์ง€ ๋ชฐ๋ผ๋„ ๋œ๋‹ค.
  • ๊ตฌ์กฐ
    • Product
      • Creator์™€ ํ•˜์œ„ ํด๋ž˜์Šค๊ฐ€ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ฐ์ฒด์— ๋™์ผํ•œ ํ”„๋กœํ† ์ฝœ๋ฅผ ์„ ์–ธํ•œ๋‹ค
    • Concreate Product
      • Product๊ฐ€ ์„ ์–ธํ•œ ํ”„๋กœํ† ์ฝœ๋กœ ๋งŒ๋“  ์‹ค์ œ ๊ฐ์ฒด๋‹ค.
    • Creator
      • ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํŒฉํ† ๋ฆฌ ๋ฉ”์„œ๋“œ๋ฅผ ์„ ์–ธํ•œ๋‹ค.
      • ์—ฌ๊ธฐ์„œ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฐ์ฒด๋Š” Product ํ”„๋กœํ† ์ฝœ์„ ์ค€์ˆ˜ํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค.
    • Concreate Creator
      • ๊ธฐ๋ณธ ํŒฉํ† ๋ฆฌ ๋ฉ”์†Œ๋“œ๋ฅผ override ํ•˜์—ฌ ์„œ๋กœ ๋‹ค๋ฅธ Product ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ ๋‹ค.
  • ์–ธ์ œ ์‚ฌ์šฉํ• ๊นŒ??
    • ๋งŒ๋“ค ๊ฐ์ฒด์˜ ํด๋ž˜์Šค ์ข…๋ฅ˜๋ฅผ ์˜ˆ์ธกํ•  ์ˆ˜ ์—†์„ ๋•Œ
    • ๋งŒ๋“ค์–ด์•ผ ํ•  ๊ฐ์ฒด์˜ ํ•˜์œ„ ํด๋ž˜์Šค๋ฅผ ๋ช…์‹œํ•˜๊ณ  ์‹ถ์„ ๋•Œ
  • ์ข…๋ฅ˜
    • Factory Method Pattern
    • Abstract Factory Pattern

[topViewController์™€ visibleViewController๋Š” ๊ฐ™์€ VC์„ ๊ฐ€๋ฅดํ‚ค๋Š” ๊ฑธ๊นŒ?]

  • ์œ„ ๊ทธ๋ฆผ์„ ๋ณด๋ฉด topViewController์™€ visibleViewController๊ฐ€ ๋งจ ์•ž์— ๊ฐ™์€ VC์„ ๊ฐ€๋ฅดํ‚ค๊ณ  ์žˆ๋‹ค.
  • ํ•˜์ง€๋งŒ topViewController์™€ visibleViewController๋Š” ๋ฐ˜๋“œ์‹œ ๊ฐ™์€ ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.
  • ์˜ˆ๋ฅผ ๋“ค์–ด, ํ•˜๋‚˜์˜ VC๋ฅผ ๋ชจ๋‹ฌ์ฐฝ์œผ๋กœ ๋‚˜ํƒ€๋‚ธ๋‹ค๋ฉด visibleViewController๋Š” ๋ชจ๋‹ฌ VC์„ ๊ฐ€๋ฅดํ‚ฌ ๊ฒƒ์ด๊ณ , topViewController๋Š” ๋ณ€ํ•˜์ง€ ์•Š๋Š”๋‹ค.