[μ 보μ²λ¦¬κΈ°μ¬] λμμΈ ν¨ν΄
GoF(Gang of Four) λμμΈ ν¨ν΄
βΆ λμμΈ ν¨ν΄ : λ°λ³΅μ μΈ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν μ¬μ¬μ© κ°λ₯ν ν΄κ²°μ± μ μΌλ°νν κ²
- μμ± ν¨ν΄ (5κ°μ§), ꡬ쑰 ν¨ν΄ (7κ°μ§), νμ ν¨ν΄ (11κ°μ§)
μμ± ν¨ν΄ (5κ°μ§) | ꡬ쑰 ν¨ν΄ (7κ°μ§) | νμ ν¨ν΄ (11κ°μ§) |
(1) Factory Method (2) Abstract Factory (3) Builder (4) Prototype (5) Singleton |
(1) Adapter (2) Bridge (3) Composite (4) Decorator (5) Facade (6) Flyweight (7) Proxy |
(1) Interpreter (2) Template Method (3) Chain of Responsibility (4) Command (5) Iterator (6) Mediator (7) Memento (8) Observer (9) State (10) Strategy (11) Visitor |
βΆ μμ±(Creational) ν¨ν΄ : κ°μ²΄ μμ± λ°©μ
(1) Factory Method : μμ ν΄λμ€λ μΈν°νμ΄μ€ μ μ, νμ ν΄λμ€μμ κ°μ²΄ μμ± -> νλμ κ°μ²΄ μμ±
(2) Abstract Factory : κ΄λ ¨ κ°μ²΄μ ν©ν 리 μμ±νμ¬ μΈν°νμ΄μ€ μ 곡 -> μ¬λ¬ κ°μ²΄ μμ±
(3) Builder : 볡μ‘ν κ°μ²΄μ μμ± κ³Όμ μΊ‘μν
(4) Prototype : κΈ°μ‘΄ κ°μ²΄ 볡μ νμ¬ μλ‘μ΄ κ°μ²΄
(5) Singleton : ν΄λμ€ λ΄ νλμ μΈμ€ν΄μ€λ§ μ‘΄μ¬
⢠ꡬ쑰(Structural) ν¨ν΄ : κ°μ²΄ κ° κ΅¬μ‘°
(1) Adapter : μλ‘ λ€λ₯Έ μΈν°νμ΄μ€λ₯Ό κ°μ§ λ κ°μ²΄ κ° μνΈμμ© κ°λ₯νλλ‘
(2) Bridge : κΈ°λ₯κ³Ό ꡬνμ λΆλ¦¬ ν μ°κ²°, λ 립μ νμ₯
(3) Composite : κ°μ²΄λ₯Ό νΈλ¦¬ κ΅¬μ‘°λ‘ κ΅¬μ±, λ¨μΌ κ°μ²΄μ λ³΅ν© κ°μ²΄ λμΌνκ² λ€λ£¨λλ‘
(4) Decorator : λμ μΌλ‘ κΈ°λ₯ μΆκ° λ° λ³κ²½, μ μ°ν νμ₯
(5) Facade : 볡μ‘ν μλΈ μμ€ν λ¨μν
(6) Flyweight : κ°μ²΄ 곡μ , λ©λͺ¨λ¦¬ μ¬μ© μ΅μ ν
(7) Proxy : λ리μλ₯Ό ν΅νμ¬ μ κ·Ό
βΆ νμ(Behavioral) ν¨ν΄ : κ°μ²΄ κ° μνΈμμ©
(1) Interpreter : μΈμ΄λ λ¬Έλ² ν΄μ λ°©λ² μ 곡
(2) Template Method : μμ ν΄λμ€λ μκ³ λ¦¬μ¦ κ³¨κ²© μ μ, νμ ν΄λμ€λ μΈλΆ ꡬν
(3) Chain of Responsibility : λ€μμ νΈλ€λ¬ κ°μ²΄κ° μμλλ‘ λ¬Έμ ν΄κ²°
(4) Command : μμ²μ κ°μ²΄λ‘ μΊ‘μννμ¬ μ μ₯
(5) Iterator : 컬λ μ λ΄λΆ ꡬνμ λ ΈμΆνμ§ μμΌλ©΄μ μμ μν
(6) Mediator : κ°μ²΄ κ° μ€μ¬μλ₯Ό ν΅ν΄μ ν΅μ
(7) Memento : κ°μ²΄ λ΄λΆ μν μ μ₯νμ¬ λ³΅κ΅¬ κ°λ₯νλλ‘
(8) Observer : μν λ³ννλ©΄ μλ¦Ό μ λ¬
(9) State : κ°μ²΄ μνμ λ°λΌ λμ λ³κ²½
(10) Strategy : λμ μΌλ‘ μκ³ λ¦¬μ¦ μ μ©ν μ μλλ‘
(11) Visitor : κ°μ²΄ ꡬ쑰μ λμ λΆλ¦¬