E D R , A S I H C RSS

Learning Guide To Design Patterns


μ—¬κΈ°μ„œλŠ” 원문쀑 Suggest Navigation 에 λŒ€ν•΄ λ²ˆμ—­ & 정리

Suggested Navigation - νŒ¨ν„΄ ν•™μŠ΅ μˆœμ„œμ— λŒ€ν•΄μ„œ

DesignPatterns둜 Pattern μŠ€ν„°λ””λ₯Ό 처음 μ‹œμž‘ν• λ•Œ 보면, 23개의 Pattern듀을 navigate ν•  λ°©ν–₯을 κ²°μ •ν• λ§Œν•œ λšœλ ·ν•œ κΈ°μ€μ΄ μ—†μŒμ„ μ•Œ 수 μžˆλ‹€. 이 μ±…μ˜ Pattern듀은 Creational, Structural, Behavioral λΆ„λ₯˜λ‘œ λ‚˜λˆ„μ–΄μ Έ μžˆλ‹€. μ΄λŸ¬ν•œ λΆ„λ₯˜λ“€μ€ 각각 λ‹€λ₯Έ μ„±μ§ˆλ“€μ˜ Pattern듀을 빨리 μ°ΎλŠ”λ° 도움을 μ£ΌκΈ΄ ν•˜μ§€λ§Œ, νŒ¨ν„΄μ„ κ³΅λΆ€ν• λ•Œ κ·Έ 곡뢀 μˆœμ„œμ— λŒ€ν•΄μ„œλŠ” ꡬ체적인 도움을 μ£Όμ§€ λͺ»ν•œλ‹€.

Pattern듀은 각각 λ…λ¦½μ μœΌλ‘œ μ“°μ΄λŠ” κ²½μš°λŠ” ν”μΉ˜ μ•Šλ‹€. 예λ₯Ό λ“€λ©΄, IteratorPattern은 μ’…μ’… CompositePattern κ³Ό 같이 쓰이고, ObserverPatternκ³Ό MediatorPattern듀은 전톡적인 결합관계λ₯Ό ν˜•μ„±ν•˜λ©°, SingletonPattern은 AbstractFactoryPattern와 같이 쓰인닀. Patternλ“€λ‘œ λ””μžμΈκ³Ό ν”„λ‘œκ·Έλž˜λ°μ„ μ‹œμž‘ν•˜λ €κ³  ν• λ•Œμ—, νŒ¨ν„΄μ„ μ‚¬μš©ν•˜λŠ”λ° μžˆμ–΄μ„œ μ‹€μ œμ μΈ κΈ°μˆ μ€ μ–΄λ–»κ²Œ 각 νŒ¨ν„΄λ“€μ„ μ‘°ν•©ν•΄μ•Ό ν•  것인가에 λŒ€ν•΄ μ•„λŠ” κ²ƒμž„μ„ λ°œκ²¬ν•˜κ²Œ 될 것이닀.

DesignPatterns 의 μ €μžλ“€μ€ Patternλ“€κ°„μ˜ 연결관계듀을 μ œμ‹œν•˜μ§€λ§Œ, 이것이 λ˜ν•œ Pattern듀에 λŒ€ν•œ navigation이 λ˜μ§€λŠ” λͺ»ν•œλ‹€. μ±… μ „λ°˜μ— 걸쳐 λ§Žμ€ νŒ¨ν„΄λ“€μ΄ μ—°κ²° 관계λ₯Ό 보여주며, λ˜ν•œ 그것은 λ‹€λ₯Έ νŒ¨ν„΄λ“€ ν•™μŠ΅ν•˜κΈ° 이전에 κ³΅λΆ€ν•˜λŠ”λ° 도움을 주기도 ν•œλ‹€. 그리고 μ–΄λ–€ Pattern듀은 λ‹€λ₯Έ νŒ¨ν„΄λ“€μ— λΉ„ν•΄ 더 λ³΅μž‘ν•˜κΈ°λ„ ν•˜λ‹€.

μ—¬λŸ¬ν•΄κ°€ μ§€λ‚œ μ§€κΈˆ, DPSGλŠ” 23μ£Ό κΈ°κ°„μ˜ pattern듀을 κ³΅λΆ€ν•˜λŠ” μŠ€ν„°λ”” 그룹듀을 κ°€μ Έμ™”λ‹€. 각각의 그룹듀은 μŠ€ν„°λ”” 그룹을 μœ„ν•œ navigation 에 λŒ€ν•΄ μ‹€ν—˜ν•˜κ³ , ν† λ‘ ν•˜κ³ , μˆ˜μ •ν–ˆλ‹€. μ—¬κΈ°μ„œ μ œμ•ˆλœ navigation은 λ§€ μƒˆλ‘œμš΄ μŠ€ν„°λ”” κ·Έλ£Ήλ“€μ—κ²Œ μ΄μš©λœλ‹€. μ—¬κΈ°μ„œ μ œμ•ˆλœ navigation은 Pattern μ΄ˆμ‹¬μžλ“€μ—κ²Œ 더 μ§€ν˜œλ‘­κ²Œ ν•˜λ‚˜μ˜ νŒ¨ν„΄μ—μ„œ λ‹€λ₯Έ νŒ¨ν„΄μœΌλ‘œ μ΄λ™ν•˜κ²Œλ” 도와쀄 것이며, 효율적으둜 23개의 Pattern듀을 ν„°λ“ν•˜λŠ”λ° 도움을 쀄 것이닀. λ¬Όλ‘  이 navigation은 계속 κ°œμ„ ν•΄ λ‚˜κ°ˆ 것이닀. 그리고 당신이 μ œμ•ˆν•˜λŠ” κ°œμ„ μ±… λ˜ν•œ ν™˜μ˜ν•œλ‹€.

DesignPatterns Navigation

Factory Method - Creational

FactoryMethodPattern 둜 μ‹œμž‘ν•˜λΌ. 이 νŒ¨ν„΄μ€ λ‹€λ₯Έ νŒ¨ν„΄λ“€μ— μ „λ°˜μ μœΌλ‘œ μ‚¬μš©λœλ‹€.

Strategy - Behavioral

StrategyPattern λ˜ν•œ μ±… μ „λ°˜μ— 걸쳐 λΉˆλ²ˆν•˜κ²Œ μ΄μš©λœλ‹€. 이 νŒ¨ν„΄μ— λŒ€ν•΄ 일찍 μ•Œμ•„λ‘ μœΌλ‘œμ¨, λ‹€λ₯Έ νŒ¨ν„΄μ„ μ΄ν•΄ν•˜λŠ”λ° 도움을 쀄 것이닀.

Decorator - Structural

"skin" vs "guts" 에 λŒ€ν•œ 토둠은 StrategyPattern 와 DecoratorPattern λ₯Ό κ΅¬λ³„ν•˜λŠ” 쒋은 μ˜ˆκ°€ 될 것이닀.

Composite - Structural

CompositePattern은 μ—¬λŸ¬λΆ€λΆ„μ—μ„œ λ‚˜νƒ€λ‚˜λ©°, IteratorPattern, ChainOfResponsibilityPattern, InterpreterPattern, VisitorPattern μ—μ„œ μ’…μ’… 쓰인닀.

Iterator - Behavioral

IteratorPattern 을 κ³΅λΆ€ν•¨μœΌλ‘œ, CompositePattern 에 λŒ€ν•œ 이해도λ₯Ό 높여쀄 것이닀.

Template Method - Behavioral

μ•žμ—μ„œμ˜ IteratorPattern 의 μ˜ˆμ œμ½”λ“œμ—μ„œμ˜ "Traverse" λŠ” TemplateMethodPattern 의 μ˜ˆμ΄λ‹€. 이 νŒ¨ν„΄μ€ StrategyPattern κ³Ό FactoryMethodPattern λ₯Ό 보좩해μ€λ‹€.

Abstract Factory - Creational

AbstractFactoryPattern은 λ‘λ²ˆμ§Έλ‘œ μ‰¬μš΄ creational Pattern이닀. 이 νŒ¨ν„΄μ€ λ˜ν•œ FactoryMethodPatternλ₯Ό λ³΄κ°•ν•˜λŠ”λ° 도움을 μ€λ‹€.

Builder - Creational

AbstractFactoryPattern κ³Ό BuilderPattern 을 비ꡐ해보라.

Singleton - Creational

SingletonPattern은 μ’…μ’… AbstractFactoryPattern 을 λ§Œλ“œλŠ”λ° μ΄μš©λœλ‹€. (Related Patterns μ°Έμ‘°)

Proxy - Structural

Proxy κ°€ μ–΄λ–»κ²Œ object에 λŒ€ν•œ accessλ₯Ό control ν•˜λŠ”μ§€ κ³΅λΆ€ν•˜λΌ. 이 νŒ¨ν„΄μ€ λ’€μ˜ AdapterPattern을 μ§μ ‘μ μœΌλ‘œ μ΄λŒμ–΄λ‚Έλ‹€.

Adapter - Structural

AdapterPattern은 DecoratorPattern, ProxyPattern, 그리고 뒀에 μ΄μ–΄μ§€λŠ” BridgePattern에 λŒ€ν•΄ ν•™μŠ΅μžκ°€ μ•Œκ³  μžˆλŠ” 지식과 λΉ„κ΅λ˜μ–΄μ§„λ‹€.

Bridge - Structural

μ΅œμ’…μ μœΌλ‘œ, ν•™μŠ΅μžλŠ” μ–΄λ–»κ²Œ BridgePattern이 AdapterPattern κ³Ό ProxyPattern κ³Ό λ‹€λ₯Έμ§€ κ³΅λΆ€ν•˜κ²Œ λœλ‹€.

Mediator - Behavioral

ObserverPattern κ³Ό Model-View-Controller (MVC) Design 을 μ΄ν•΄ν•˜κΈ° μœ„ν•œ μ€λΉ„λ‹¨κ³„λ‘œ MediatorPattern을 κ³΅λΆ€ν•œλ‹€.

Observer - Behavioral

고전적인 MVC Design 을 κ΅¬ν˜„ν•˜κΈ° μœ„ν•΄ μ–΄λ–»κ²Œ ObserverPattern에 μ˜ν•΄ MediatorPattern 이 μ΄μš©λ˜λŠ”μ§€ λ°œκ²¬ν•˜λΌ.

Chain of Responsibility - Behavioral

ObserverPattern κ³Ό MediatorPattern 듀을 μ΄μš©ν•œ message의 전달관계λ₯Ό κ΄€μ°°ν•˜λ©΄μ„œ, ChainOfResponsibilityPattern 의 message handling κ³Ό 비ꡐ & λŒ€μ‘°ν•  수 μžˆλ‹€.

Memento - Behavioral

이 Pattern은 λ‹€μŒμ˜ CommandPattern μ—μ„œ undo 와 redo의 κ΅¬ν˜„λΆ€λΆ„κ³Ό 이어진닀.

Command - Behavioral

CommandPattern 은 μ•žμ˜ MediatorPattern κ³Ό κ΄€λ ¨λœ, μ—¬λŸ¬κ°€μ§€ λ°©λ©΄μ—μ„œ μ΄μš©λœλ‹€.

Prototype - Creational

μ•„λ§ˆλ„ κ°€μž₯ λ³΅μž‘ν•œ creational pattern 일 것이닀. PrototypePattern 은 μ’…μ’… CommandPattern κ³Ό 같이 μ΄μš©λœλ‹€.

State - Behavioral

object의 행동 변화에 λŒ€ν•œ 또 λ‹€λ₯Έ λ°©λ²•μœΌλ‘œ StatePattern 을 곡뢀할 수 μžˆμ„ 것이닀.

Visitor - Behavioral

VisitorPattern 은 μ’…μ’… CompositePattern κ³Ό IteratorPattern λ“€κ³Ό μ‘°ν•©λ˜μ–΄μ§„λ‹€.

Flyweight - Structural

κ°€μž₯ λ³΅μž‘ν•œ Pattern쀑 ν•˜λ‚˜μ΄λ‹€. 이 Pattern의 이용 μ˜ˆμ œλŠ” λ‹€μŒ νŒ¨ν„΄μΈ InterpreterPattern μ—μ„œ μ„œμˆ λœλ‹€.

Interpreter - Behavioral

InterpreterPattern 은 λ³΅μž‘ν•˜λ‹€. 이 Pattern은 FlyweightPattern 와 VisitorPattern κ³Ό κ΄€κ³„μžˆμœΌλ©°, 이해λ₯Ό λ•λŠ”λ‹€.

Facade - Structural

κ°€μž₯ λ§ˆμ§€λ§‰μœΌλ‘œ 읽을 Pattern 은 FacadePattern 이닀. 이 Pattern은 InterpreterPattern 의 μ˜ˆμ œμ½”λ“œμ™€ κ·Έ μ£Όμ œκ°€ λΉ„μŠ·ν•˜λ€λ‘œ, InterpreterPattern λ‹€μŒμ— μ΄μ–΄μ§€λŠ” 것이 μ μ ˆν•˜λ‹€.
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:37
Processing time 0.0222 sec