Deep Dive Into Design Patterns - λΈŒλ¦¬μ§€ νŒ¨ν„΄

    πŸ’‘ λΈŒλ¦¬μ§€ νŒ¨ν„΄μ΄λž€? 큰 클래슀 λ˜λŠ” λ°€μ ‘ν•˜κ²Œ κ΄€λ ¨λœ ν΄λž˜μŠ€λ“€μ˜ 집합을 두 개의 κ°œλ³„ 계측ꡬ쑰(좔상화 및 κ΅¬ν˜„)둜 λ‚˜λˆˆ ν›„ 각각 λ…λ¦½μ μœΌλ‘œ κ°œλ°œν•  수 μžˆλ„λ‘ ν•˜λŠ” ꡬ쑰 λ””μžμΈ νŒ¨ν„΄μž…λ‹ˆλ‹€. πŸ’‘ 문제? Circle(원) 및 Square(μ§μ‚¬κ°ν˜•)λΌλŠ” ν•œ 쌍의 μžμ‹ ν΄λž˜μŠ€λ“€μ΄ μžˆλŠ” κΈ°ν•˜ν•™μ  Shape(λͺ¨μ–‘) ν΄λž˜μŠ€κ°€ μžˆλ‹€κ³  κ°€μ •ν•΄ λ΄…μ‹œλ‹€. 이 클래슀 계측 ꡬ쑰λ₯Ό ν™•μž₯ν•˜μ—¬ 색상을 λ„μž…ν•˜κΈ° μœ„ν•΄ Red(빨간색) 및 Blue(νŒŒλž€μƒ‰) λͺ¨μ–‘λ“€μ˜ μžμ‹ ν΄λž˜μŠ€λ“€μ„ λ§Œλ“€ κ³„νšμž…λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 이미 두 개의 μžμ‹ ν΄λž˜μŠ€κ°€ μžˆμœΌλ―€λ‘œ Blue­Circle(νŒŒλž€μƒ‰ 원) 및 Red­Square(빨간색 μ§μ‚¬κ°ν˜•)와 같은 λ„€ κ°€μ§€μ˜ 클래슀 쑰합을 λ§Œλ“€μ–΄μ•Ό ν•©λ‹ˆλ‹€. μƒˆλ‘œμš΄ λͺ¨μ–‘ μœ ν˜•λ“€κ³Ό 색상 μœ ν˜•λ“€μ„ μΆ”κ°€ν•  λ•Œλ§ˆλ‹€ 계측 κ΅¬μ‘°λŠ” κΈ°ν•˜κΈ‰μˆ˜μ ..

    Deep Dive Into Design Patterns - μ»΄ν¬μ§€νŠΈ νŒ¨ν„΄

    πŸ’‘ μ»΄ν¬μ§€νŠΈ(볡합체) νŒ¨ν„΄μ΄λž€? 객체듀을 트리 κ΅¬μ‘°λ“€λ‘œ κ΅¬μ„±ν•œ ν›„, μ΄λŸ¬ν•œ ꡬ쑰듀을 κ°œλ³„ κ°μ²΄λ“€μ²˜λŸΌ μž‘μ—…ν•  수 μžˆλ„λ‘ ν•˜λŠ” ꡬ쑰 νŒ¨ν„΄μž…λ‹ˆλ‹€. 즉, 볡합 객체(Composite)와 단일 객체(Leaf)λ₯Ό λ™μΌν•œ μ»΄ν¬λ„ŒνŠΈλ‘œ μ·¨κΈ‰ν•˜μ—¬ ν΄λΌμ΄μ–ΈνŠΈκ°€ 무엇이 볡합 객체이고 무엇이 단일 객체인지 κ΅¬λΆ„ν•˜μ§€ μ•Šκ³ λ„ μ‚¬μš©ν•  수 μžˆκ²Œλ” ν•˜λŠ” νŒ¨ν„΄μž…λ‹ˆλ‹€. πŸ’‘ 클래슀 λ‹€μ΄μ–΄κ·Έλž¨μœΌλ‘œ λ³Έ μ»΄ν¬μ§€νŠΈ νŒ¨ν„΄ Component(μΈν„°νŽ˜μ΄μŠ€) : Leaf와 Compsite λ₯Ό λ¬ΆλŠ” 곡톡적인 μƒμœ„ μΈν„°νŽ˜μ΄μŠ€ Composite : 볡합 κ°μ²΄λ‘œμ„œ, Component κ΅¬ν˜„μ²΄λ“€μ„ λ‚΄λΆ€ 리슀트둜 관리 Leaf : 단일 κ°μ²΄λ‘œμ„œ, ν•˜μœ„ μš”μ†Œκ°€ μ—†λ‹€. Client : Component Interfaceλ₯Ό 톡해 단일/볡합 객체λ₯Ό ν•˜λ‚˜μ˜ 객체둜 닀룬닀. 볡합..

    Deep Dive Into Design Patterns - νΌμ‚¬λ“œ νŒ¨ν„΄

    πŸ’‘ νΌμ‚¬λ“œ νŒ¨ν„΄μ΄λž€? λΌμ΄λΈŒλŸ¬λ¦¬μ— λŒ€ν•œ, ν”„λ ˆμž„μ›Œν¬μ— λŒ€ν•œ, λ˜λŠ” λ‹€λ₯Έ ν΄λž˜μŠ€λ“€μ˜ λ³΅μž‘ν•œ 집합에 λŒ€ν•œ λ‹¨μˆœν™”λœ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ œκ³΅ν•˜λŠ” ꡬ쑰적 λ””μžμΈ νŒ¨ν„΄μž…λ‹ˆλ‹€. 라이브러리의 각 ν΄λž˜μŠ€μ™€ λ©”μ„œλ“œλ“€μ΄ μ–΄λ–€ λͺ©μ μ˜ λ™μž‘μΈμ§€ μ΄ν•΄ν•˜κΈ° μ–΄λ €μ›Œ λ°”λ‘œ κ°€μ Έλ‹€ μ“°κΈ°μ—λŠ” λ‚œμ΄λ„κ°€ 높을 λ•Œ, 이에 λŒ€ν•œ μ μ ˆν•œ 넀이밍과 정리λ₯Ό 톡해 μ‚¬μš©μžλ‘œ ν•˜μ—¬κΈˆ μ‰½κ²Œ 라이브러리λ₯Ό λ‹€λ£° 수 μžˆλ„λ‘ μΈν„°νŽ˜μ΄μŠ€λ₯Ό λ§Œλ“œλŠ” 데 μ‚¬μš©ν•©λ‹ˆλ‹€. ⭐ νΌμ‚¬λ“œλŠ” μ›€μ§μ΄λŠ” 뢀뢄이 많이 ν¬ν•¨λœ λ³΅μž‘ν•œ ν•˜μœ„ μ‹œμŠ€ν…œμ— λŒ€ν•œ κ°„λ‹¨ν•œ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ œκ³΅ν•˜λŠ” ν΄λž˜μŠ€μž…λ‹ˆλ‹€. πŸ’‘ 클래슀 λ‹€μ΄μ–΄κ·Έλž¨μœΌλ‘œ λ³Έ νΌμ‚¬λ“œ νŒ¨ν„΄ νΌμ‚¬λ“œ νŒ¨ν„΄μ„ μ‚¬μš©ν•˜λ©΄ ν•˜μœ„ μ‹œμŠ€ν…œ κΈ°λŠ₯λ“€μ˜ νŠΉμ • 뢀뢄에 νŽΈλ¦¬ν•˜κ²Œ μ ‘κ·Όν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ, νΌμ‚¬λ“œλŠ” ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ„ μ–΄λ””λ‘œ 보내야 ν•˜λŠ”μ§€μ™€ μ›€μ§μ΄λŠ” λͺ¨λ“  ..

    Deep Dive Into Design Patterns - μ–΄λŒ‘ν„° νŒ¨ν„΄

    πŸ’‘ μ–΄λŒ‘ν„° νŒ¨ν„΄μ΄λž€? ν˜Έν™˜λ˜μ§€ μ•ŠλŠ” μΈν„°νŽ˜μ΄μŠ€λ₯Ό 가진 객체듀이 ν˜‘μ—…ν•  수 μžˆλ„λ‘ ν•˜λŠ” ꡬ쑰적 λ””μžμΈ νŒ¨ν„΄μž…λ‹ˆλ‹€. πŸ“Œ 문제 상황 주식 μ‹œμž₯ λͺ¨λ‹ˆν„°λ§ 앱을 λ§Œλ“€κ³  있고, 이 앱은 μ—¬λŸ¬ μ†ŒμŠ€μ—μ„œ 주식 데이터λ₯Ό XML ν˜•μ‹μœΌλ‘œ λ‹€μš΄λ‘œλ“œν•œ ν›„ μ‚¬μš©μžμ—κ²Œ 보기 쒋은 μ°¨νŠΈλ“€κ³Ό λ‹€μ΄μ–΄κ·Έλž¨λ“€μ„ ν‘œμ‹œν•œλ‹€κ³  상상해 λ΄…μ‹œλ‹€. μ–΄λŠ μ‹œμ μ— 당신은 νƒ€μ‚¬μ˜ 슀마트 뢄석 라이브러리λ₯Ό ν†΅ν•©ν•˜μ—¬ λ‹Ήμ‹ μ˜ 앱을 κ°œμ„ ν•˜κΈ°λ‘œ κ²°μ •ν–ˆμŠ΅λ‹ˆλ‹€. 그런데 이 뢄석 λΌμ΄λΈŒλŸ¬λ¦¬λŠ” JSON ν˜•μ‹μ˜ λ°μ΄ν„°λ‘œλ§Œ μž‘λ™ν•©λ‹ˆλ‹€. 즉, μ•±κ³Ό λΌμ΄λΈŒλŸ¬λ¦¬κ°€ ν˜Έν™˜λ˜μ§€ μ•ŠλŠ” μƒν™©μž…λ‹ˆλ‹€. 이 라이브러리λ₯Ό XMLκ³Ό μž‘λ™ν•˜λ„λ‘ λ³€κ²½ν•  수 μžˆμœΌλ‚˜, 그러면 λΌμ΄λΈŒλŸ¬λ¦¬μ— μ˜μ‘΄ν•˜λŠ” 일뢀 κΈ°μ‘΄ μ½”λ“œκ°€ 손상될 수 μžˆμŠ΅λ‹ˆλ‹€. 또 μ²˜μŒλΆ€ν„° νƒ€μ‚¬μ˜ 라이브러리 μ†ŒμŠ€ μ½”λ“œμ— μ ‘κ·Όν•˜λŠ” 것이 λΆˆκ°€λŠ₯ν•˜μ—¬..

    Deep Dive Into Design Patterns - λ””μžμΈ νŒ¨ν„΄μ˜ κ°œμš”

    πŸ’‘ νŒ¨ν„΄ μžμ„Ένžˆ μ•Œμ•„λ³΄κΈ°πŸ“Œ 생성 νŒ¨ν„΄ Deep Dive Into Design Patterns - 싱글톀 νŒ¨ν„΄πŸ’‘ 싱글톀(Singleton) νŒ¨ν„΄μ΄λž€? ν΄λž˜μŠ€μ— μΈμŠ€ν„΄μŠ€κ°€ ν•˜λ‚˜λ§Œ μžˆλ„λ‘ ν•˜λ©΄μ„œ 이 μΈμŠ€ν„΄μŠ€μ— λŒ€ν•œ μ „μ—­ μ ‘κ·Ό(μ•‘μ„ΈμŠ€) 지점을 μ œκ³΅ν•˜λŠ” 생성 λ””μžμΈ νŒ¨ν„΄μž…λ‹ˆλ‹€. μ‰½κ²Œ 말해, 단 ν•˜λ‚˜μ˜ μœ μΌν•œ 객체λ₯Όeasyhomputer.tistory.com πŸ“Œ ꡬ쑰 νŒ¨ν„΄ Deep Dive Into Design Patterns - μ–΄λŒ‘ν„° νŒ¨ν„΄πŸ’‘ μ–΄λŒ‘ν„° νŒ¨ν„΄μ΄λž€? ν˜Έν™˜λ˜μ§€ μ•ŠλŠ” μΈν„°νŽ˜μ΄μŠ€λ₯Ό 가진 객체듀이 ν˜‘μ—…ν•  수 μžˆλ„λ‘ ν•˜λŠ” ꡬ쑰적 λ””μžμΈ νŒ¨ν„΄μž…λ‹ˆλ‹€. πŸ“Œ 문제 상황 주식 μ‹œμž₯ λͺ¨λ‹ˆν„°λ§ 앱을 λ§Œλ“€κ³  있고, 이 앱은 μ—¬λŸ¬ μ†ŒμŠ€μ—easyhomputer.tistory.com Deep Dive Into Desig..