How instances are passed and managed in object Oriented design patterns
π― κ°μ²΄μ§ν₯κ³Ό μΈμ€ν΄μ€: λμμΈ ν¨ν΄λ³ κ΄μ μ 리
μλλ μΈμ€ν΄μ€ μ λ¬λ°©μμ λ°λΌ μ 리ν 12κ°μ§ λνμ μΈ λμμΈ ν¨ν΄μ λλ€.
1. Strategy ν¨ν΄
- ν΅μ¬ κ°λ : νλμ μΊ‘μννμ¬ λ°νμμ κ΅μ²΄
- μλ: μΈν°νμ΄μ€λ‘ μκ³ λ¦¬μ¦ μ μ, κ°μ²΄ μ£Όμ μΌλ‘ μ€ν μ λ΅ λ³κ²½
- μΈμ€ν΄μ€ μ λ¬/μ¬μ© λ°©μ: 컨ν μ€νΈμ μ λ΅ κ°μ²΄ μ£Όμ
2. Template Method ν¨ν΄
- ν΅μ¬ κ°λ : μμ ν΄λμ€μμ μκ³ λ¦¬μ¦ λΌλ μ μ
- μλ: μΈλΆ λμμ μλΈν΄λμ€μμ ꡬν
- μΈμ€ν΄μ€ μ λ¬/μ¬μ© λ°©μ: μμ κΈ°λ° μ€ν νλ¦ μ μ΄
3. Command ν¨ν΄
- ν΅μ¬ κ°λ : λͺ λ Ήμ κ°μ²΄λ‘ μΊ‘μν
- μλ: μμ²κ³Ό μ€ν λΆλ¦¬
- μΈμ€ν΄μ€ μ λ¬/μ¬μ© λ°©μ: λͺ λ Ή κ°μ²΄ μμ± ν μ€ν
4. Prototype ν¨ν΄
- ν΅μ¬ κ°λ : κ°μ²΄ 볡μ¬λ₯Ό ν΅ν΄ μ κ°μ²΄ μμ±
- μλ: 볡μ‘ν μμ± λμ 볡μ¬
- μΈμ€ν΄μ€ μ λ¬/μ¬μ© λ°©μ: Clone()μΌλ‘ 볡μ
5. State ν¨ν΄
- ν΅μ¬ κ°λ : μνμ λ°λΌ νλμ λ³κ²½
- μλ: μν κ°μ²΄μ λ°λΌ μ€ν λ‘μ§ λ€λ¦
- μΈμ€ν΄μ€ μ λ¬/μ¬μ© λ°©μ: Contextκ° μν κ°μ²΄λ₯Ό μ°Έμ‘°
6. Decorator ν¨ν΄
- ν΅μ¬ κ°λ : κ°μ²΄μ κΈ°λ₯μ λμ μΌλ‘ μΆκ°
- μλ: κΈ°μ‘΄ κ°μ²΄λ₯Ό κ°μΈ κΈ°λ₯ μΆκ°
- μΈμ€ν΄μ€ μ λ¬/μ¬μ© λ°©μ: μ€μ²©λ λνΌ κ°μ²΄ μ¬μ©
7. Observer ν¨ν΄
- ν΅μ¬ κ°λ : κ°μ²΄ μν λ³κ²½ μ μμ‘΄ κ°μ²΄μ μλ¦Ό
- μλ: μ΄λ²€νΈ κΈ°λ° μμ€ν
- μΈμ€ν΄μ€ μ λ¬/μ¬μ© λ°©μ: ꡬλ μμκ² notify
8. Mediator ν¨ν΄
- ν΅μ¬ κ°λ : κ°μ²΄ κ° λ³΅μ‘ν ν΅μ μ μ€μ¬μμκ² μμ
- μλ: κ°μ²΄ κ° μ§μ μ°Έμ‘° μ κ±°
- μΈμ€ν΄μ€ μ λ¬/μ¬μ© λ°©μ: μ€μ¬μ ν΅ν΄ ν΅μ
9. Facade ν¨ν΄
- ν΅μ¬ κ°λ : 볡μ‘ν μλΈμμ€ν μ λ¨μ μΈν°νμ΄μ€λ‘ μ 곡
- μλ: λ¨μνλ μ κ·Ό μ 곡
- μΈμ€ν΄μ€ μ λ¬/μ¬μ© λ°©μ: νλμ ν΄λμ€λ‘ μλΈμμ€ν λν
10. Abstract Factory ν¨ν΄
- ν΅μ¬ κ°λ : κ΄λ ¨ κ°μ²΄ μμ± μΈν°νμ΄μ€ μ 곡
- μλ: ꡬμ ν΄λμ€ μ§μ μμ΄ κ°μ²΄κ΅° μμ±
- μΈμ€ν΄μ€ μ λ¬/μ¬μ© λ°©μ: ν©ν 리 κ°μ²΄μμ μμ±
11. Proxy ν¨ν΄
- ν΅μ¬ κ°λ : λ리 κ°μ²΄λ₯Ό ν΅ν΄ λμ μ μ΄
- μλ: μ κ·Ό μ μ΄, μ§μ° μ΄κΈ°ν λ±
- μΈμ€ν΄μ€ μ λ¬/μ¬μ© λ°©μ: νλ‘μκ° μ€μ κ°μ²΄ νΈμΆ
12. Adapter ν¨ν΄
- ν΅μ¬ κ°λ : μΈν°νμ΄μ€ νΈν μ λ λ μ€κ° λ³νμ μ 곡
- μλ: νΈνλμ§ μλ μΈν°νμ΄μ€ μ°κ²°
- μΈμ€ν΄μ€ μ λ¬/μ¬μ© λ°©μ: μ μΈν°νμ΄μ€λ‘ κ°μΈκΈ°