μ •λ³΄μ²˜λ¦¬κΈ°μ‚¬/μ‹€κΈ° κ°œλ…

[μ •λ³΄μ²˜λ¦¬κΈ°μ‚¬] λ””μžμΈ νŒ¨ν„΄

ν•˜μ§±. 2023. 10. 4. 04:03
728x90

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 : 객체 ꡬ쑰와 λ™μž‘ 뢄리

 

728x90