posa1 2008 view handler - andstudy/forge GitHub Wiki

View Handler λ””μžμΈ νŒ¨ν„΄

  1. MVC 계열 νŒ¨ν„΄ λ³€ν˜•μ˜ ν•œ μ’…λ₯˜

예제

  1. 닀쀑 λ¬Έμ„œ νŽΈμ§‘κΈ° - 307p κ·Έλ¦Ό
  2. λ·°κ°€ μ—¬λŸ¬κ°œ

문제

  1. 뷰듀은 λˆ„κ°€ κ΄€λ¦¬ν•˜λ‚˜?
  2. λ©‹μ Έλ³΄μ΄λŠ” 영ν–₯λ ₯(force)
  3. μ‚¬μš©μžμ˜ κ΄€μ μ—μ„œ ~ μ‰½κ²Œ 관리, μ‹œμŠ€ν…œ λ‚΄μ˜ ~ μ‰½κ²Œ 관리.
  4. κ°œλ³„ 뷰듀이 μ„œλ‘œ μ’…μ†λ˜μ–΄μ„œλŠ” μ•ˆ 되며 μ–΄μ©Œκ³  μ €μ©Œκ³ ...
  5. λ³€κ²½κ°€λŠ₯, μΆ”κ°€κ°€λŠ₯.
  6. ν•œλ§ˆλ””λ‘œ λ©‹μ§€κ³  μœ μ—°ν•˜κ²Œ...
  7. 닀쀑 λ·°λ₯Ό κ΄€λ¦¬ν•˜λŠ” μ±…μž„μ€ λˆ„κ°€ κ°€μ Έμ•Ό ν• κΉŒμš”?
  8. 예 - 뷰듀을 격자 μ •λ ¬(tile) ν•˜λŠ” μ±…μž„μ€ μ–΄λŠκ³³μ—?

해법

  1. λ·° ν•Έλ“€λŸ¬ (View Handler) - μ§œμž”~
  2. νŠΉμ • 뷰의 μ‘°μ •, 핸듀링
  3. MVC의 μž…μžκ°€ 고운 νŒ¨ν„΄

win32 MDI

  1. {{{MainFrame, ChildFrame, View, Document}}}
  2. ν”„λ ˆμž„ κ°œλ…μ˜ λ„μž…
  3. λ·° ν•Έλ“€λŸ¬λŠ” λ©”μΈν”„λ ˆμž„μ΄λΌ λ³Ό 수 μžˆλ‹€.

μ—¬κΈ°μ„œ 잠깐! POSA 에 λŒ€ν•œ 싀망

  1. λœ¬κ΅¬λ¦„ 작기 vs 이제 식상
  2. Black Board (μ•ˆλ“œλ‘œλ©”λ‹€?)
  3. Reflection - μ–Έμ–΄μ—μ„œ 지원, Whole Part - 객체지ν–₯이면 λ‹Ήμ—°
  4. View Handler - ν”„λ ˆμž„μ›Œν¬μ—μ„œ 지원
  5. κ΅¬ν˜„ ν•  수 μ—†κ±°λ‚˜ 이미 λ˜μ–΄μžˆκ±°λ‚˜

ꡬ쑰

  1. λ‹€μ΄μ–΄κ·Έλž¨ 311p
  2. ν•œλ§ˆλ””λ‘œ λ·°ν•Έλ“€λŸ¬λŠ” μ—¬λŸ¬κ°œμ˜ λ·°λ₯Ό κ°€μ§„λ‹€. 끗?
  3. View Handler
  4. μ†Œν”„νŠΈμ›¨μœ  μ‹œμŠ€ν…œμ˜ 뷰듀을 μ—΄κ³  μ‘°μž‘ν•˜κ³  λ‹«λŠ”λ‹€.
  5. Abstract View
  6. λͺ¨λ“  뷰에 곡톡적인 μΈν„°νŽ˜μ΄μŠ€ μ •μ˜
  7. Specific View
  8. 자체 λ””μŠ€ν”Œλ ˆμ΄ ν•¨μˆ˜ κ΅¬ν˜„
  9. Supplier
  10. 데이터 제곡 (document?)

λ™μž‘

μ‹œλ‚˜λ¦¬μ˜€ 1 - λ·° 생성

  1. λ·°ν•Έλ“€λŸ¬κ°€ λ·°λ₯Ό λ§Œλ“€κ³ , λ§Œλ“  뷰듀을 κ°€μ§„λ‹€.
  2. λ·°λŠ” μ„œν”ŒλΌμ΄μ–΄μ—μ„œ 데이터λ₯Ό κ°€μ Έμ˜¨λ‹€.
  3. λ·°λŠ” μ„œν”ŒλΌμ΄μ–΄μ— λ“±λ‘ν•œλ‹€ (μ˜΅μ €λ²„λ„€μš”?)
  4. 뭐 별거 μ—†λ„€μš”?

μ‹œλ‚˜λ¦¬μ˜€ 2 - λ·° 격자 μ •λ ¬

  1. λ·°ν•Έλ“€λŸ¬μ—μ„œ 각 λ·°λ₯Ό λŒλ©΄μ„œ resize, move 호좜
  2. μ—­μ‹œ 별거 μ—†λ„€μš”?

κ΅¬ν˜„

  1. μ˜΅μ €λ²„, νŒ©ν† λ¦¬, μ΄ν„°λ ˆμ΄ν„°, 미디에이터λ₯Ό λ²„λ¬΄λ €λ³΄μž.
  2. λ·°λŠ” 좔상뷰와 μƒμ„Έλ·°λ‘œ 상속 ꡬ쑰

κ΅¬ν˜„ μˆœμ„œ

  1. ν•„μš”ν•œ λ·°λ₯Ό μ •μ˜ν•œλ‹€
  2. λͺ¨λ“  뷰듀에 λŒ€ν•œ 곡톡 μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ •μ˜ν•œλ‹€.
  3. λ·°λ₯Ό κ΅¬ν˜„ν•œλ‹€.
  4. λ·° ν•Έλ“€λŸ¬λ₯Ό μ •μ˜ν•œλ‹€.
  5. openView() - new ν•΄μ„œ add ν•œλ‹€. 끗

λ³€ν˜•

  1. μ»€λ§¨λ“œ 객체
  2. λ·° ν•Έλ“€λŸ¬λŠ” 뷰의 ν•¨μˆ˜λ₯Ό 직접 ν˜ΈμΆœν•˜μ§€ μ•Šκ³  μ»€λ§¨λ“œ 객체λ₯Ό λ„˜κΈ΄λ‹€

μš©λ‘€

  1. λ§₯ν‚¨ν† μ‹œ μ°½ κ΄€λ¦¬μž - 314p μΈν„°νŽ˜μ΄μŠ€λ³΄λ‹€ μ’€ λ§Žλ‹€
  2. λ§ˆμ΄ν¬λ‘œμ†Œν”„νŠΈ μ›Œλ“œ - μš”μ¦˜μ€ μ’€ 달라지지 μ•Šμ•˜λ‚˜μš”? MDI인것도 μ•„λ‹ˆκ³  μ•„λ‹Œκ²ƒλ„ μ•„λ‹ˆμ—¬.

κ²°κ³Ό

μž₯점

  1. λ‹¨μΌν•œ λ°©μ‹μœΌλ‘œ λ·°λ₯Ό μ²˜λ¦¬ν•œλ‹€.
  2. 뷰에 ν™•μž₯μ„±κ³Ό 가변성을 μ§€μ›ν•œλ‹€.
  3. νŠΉμ • μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— μ ν•©ν•˜λ„λ‘ λ·°λ₯Ό μ‘°μ • ν•  수 μžˆλ‹€.
  4. ν•œλ§ˆλ””λ‘œ νΌλ‚˜κ³  μœ μ—°ν•˜λ‹€. - 폼(form)이 ꡭ어사전에 μžˆλ‹€λ‹ˆ

단점

  1. μ μš©μ„±μ— λ‹€μ†Œ μ œμ•½μ΄ μžˆλ‹€.
  2. νš¨μœ¨μ„±μ΄ λ–¨μ–΄μ§€λŠ” κ²½ν–₯이 μžˆλ‹€.
  3. 단점은 뭐 μ‚¬μ†Œν•΄ 보인닀

λ‚˜μ˜ κ²°λ‘ 

  1. A ν•Έλ“€λŸ¬λ₯Ό λ§Œλ“€μ–΄ λ§Žμ€ A 듀을 관리해라. (λ‹˜μ•„~ λ„ˆλ¬΄ λ»”ν•œκ±° μ•„λ‹Œκ°€μš”? γ…œ.γ…œ)