Design Pattern - J4mbo/labs GitHub Wiki
what is Design-pattern?
λμμΈ ν¨ν΄μ μμ£Ό μ¬μ©νλ μ€κ³ ννλ₯Ό μ ννν΄μ μ΄λ₯Ό μ νλ³λ‘ μ€κ³ ν νλ¦Ώμ λ§λ€μ΄λ κ²μ λ§νλ€. λμμΈ ν¨ν΄μ μ¬μ©νλ©΄ ν¨μ¨μ±κ³Ό μ¬μ¬μ©μ±μ λμΌ μ μλ€.
λμμΈ ν¨ν΄μ μκ³ λ¦¬μ¦μ²λΌ νλ‘κ·Έλ¨ μ½λλ‘ λ³ννμ¬ λ°λ‘ μ¬μ©ν μ μλ κ²μ μλμ§λ§ μ μ¬ν μν©μμ ꡬ쑰μ μΈ λ¬Έμ λ₯Ό ν΄κ²°ν μ μλ λ°©μμ μ μν΄μ€λ€. κ²°κ΅ λμμΈ ν¨ν΄μ λ§μ κ°λ°μλ€μ΄ κ²½νμΌλ‘ 체λν μ€κ³ μ§μμ κ²μ¦νκ³ μ΄λ₯Ό μΆμννμ¬ μΌλ°νν ν νλ¦Ώμ΄λΌ νκ² λ€. [λ€μ΄λ² μ§μλ°±κ³Ό] λμμΈ ν¨ν΄μ μ΄ν΄ (μ½κ² λ°°μ°λ μννΈμ¨μ΄ 곡ν, 2015. 11. 30., νλΉμμΉ΄λ°λ―Έ(μ£Ό))
GoF Design-pattern
- μλ¦ κ°λ§(Erich Gamma), 리μ²λ ν¬λ¦(Richard Helm), λν μ‘΄μ¨(Ralph Johnson), μ‘΄ λΈλ¦¬μλ°μ€(John Vlissides)κ° μ μν GoF(Gang of Four)μ λμμΈ ν¨ν΄
- λͺ©μ μ λ°λΌ μμ±, ꡬ쑰, λμ(νμ) ν¨ν΄μΌλ‘ λλλ€.
μμ± ν¨ν΄
κ°μ²΄λ₯Ό μμ±νλ κ²κ³Ό κ΄λ ¨λ ν¨ν΄.
- singleton
- prototype
- builder
- factory method
- abstraction factory
ꡬ쑰 ν¨ν΄
νλ‘κ·Έλ¨ λ΄μ μλ£κ΅¬μ‘°λ μΈν°νμ΄μ€ ꡬ쑰 λ± νλ‘κ·Έλ¨μ ꡬ쑰λ₯Ό μ€κ³νλ λ° λ§μ΄ νμ©λ μ μλ ν¨ν΄. 볡μ‘ν ννμ ꡬ쑰λ₯Ό κ°λ μμ€ν μ κ°λ°νκΈ° μ½κ² λ§λ€μ΄μ£Όλ ν¨ν΄μ΄ λ°λ‘ ꡬ쑰 ν¨ν΄μ΄λ€. λ°λΌμ ꡬ쑰 ν¨ν΄μ μ΄μ©νλ©΄ μλ‘μ΄ κΈ°λ₯μ κ°μ§ λ³΅ν© κ°μ²΄λ₯Ό ν¨κ³Όμ μΌλ‘ μμ±ν μ μλ€.
- adapter
- composite
- bridge
- decorator
- facade
- flyweight
- proxy
λμ(νμ) ν¨ν΄
λ°λ³΅μ μΌλ‘ μ¬μ©λλ κ°μ²΄λ€μ μνΈμμ©μ ν¨ν΄νν κ²μΌλ‘, ν΄λμ€λ κ°μ²΄λ€μ΄ μνΈμμ©νλ λ°©λ²κ³Ό μ± μμ λΆμ°νλ λ°©λ²μ μ μ. νμ ν¨ν΄μ μ¬λ¬ κ°μ§ νμ κ΄λ ¨ ν¨ν΄μ μ¬μ©νμ¬ λ 립μ μΌλ‘ μΌμ μ²λ¦¬νκ³ μ ν λ μ¬μ©νλ€. μ¦ νμ ν¨ν΄μ λ©μμ§ κ΅νκ³Ό κ΄λ ¨λ κ²μΌλ‘, κ°μ²΄λ€ κ°μ νμλ μκ³ λ¦¬μ¦ λ±κ³Ό κ΄λ ¨λ ν¨ν΄μ λ§νλ€.
- template method
- interpreter
- iterator
- observer
- strategy
- visitor
- chain of responsibility
- command
- mediator
- state
- memento