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 과 같이 쓰이고, ObserverPatternMediatorPattern들은 전통적인 결합관계를 형성하며, SingletonPatternAbstractFactoryPattern와 같이 쓰인다. 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" 에 대한 토론은 StrategyPatternDecoratorPattern 를 구별하는 좋은 예가 될 것이다.

Composite - Structural

CompositePattern은 여러부분에서 나타나며, IteratorPattern, ChainOfResponsibilityPattern, InterpreterPattern, VisitorPattern 에서 종종 쓰인다.

Iterator - Behavioral

IteratorPattern 을 공부함으로, CompositePattern 에 대한 이해도를 높여줄 것이다.

Template Method - Behavioral

앞에서의 IteratorPattern 의 예제코드에서의 "Traverse" 는 TemplateMethodPattern 의 예이다. 이 패턴은 StrategyPatternFactoryMethodPattern 를 보충해준다.

Abstract Factory - Creational

AbstractFactoryPattern은 두번째로 쉬운 creational Pattern이다. 이 패턴은 또한 FactoryMethodPattern를 보강하는데 도움을 준다.

Builder - Creational

AbstractFactoryPatternBuilderPattern 을 비교해보라.

Singleton - Creational

SingletonPattern은 종종 AbstractFactoryPattern 을 만드는데 이용된다. (Related Patterns 참조)

Proxy - Structural

Proxy 가 어떻게 object에 대한 access를 control 하는지 공부하라. 이 패턴은 뒤의 AdapterPattern을 직접적으로 이끌어낸다.

Adapter - Structural

AdapterPatternDecoratorPattern, ProxyPattern, 그리고 뒤에 이어지는 BridgePattern에 대해 학습자가 알고 있는 지식과 비교되어진다.

Bridge - Structural

최종적으로, 학습자는 어떻게 BridgePatternAdapterPatternProxyPattern 과 다른지 공부하게 된다.

Mediator - Behavioral

ObserverPattern 과 Model-View-Controller (MVC) Design 을 이해하기 위한 준비단계로 MediatorPattern을 공부한다.

Observer - Behavioral

고전적인 MVC Design 을 구현하기 위해 어떻게 ObserverPattern에 의해 MediatorPattern 이 이용되는지 발견하라.

Chain of Responsibility - Behavioral

ObserverPatternMediatorPattern 들을 이용한 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 은 종종 CompositePatternIteratorPattern 들과 조합되어진다.

Flyweight - Structural

가장 복잡한 Pattern중 하나이다. 이 Pattern의 이용 예제는 다음 패턴인 InterpreterPattern 에서 서술된다.

Interpreter - Behavioral

InterpreterPattern 은 복잡하다. 이 Pattern은 FlyweightPatternVisitorPattern 과 관계있으며, 이해를 돕는다.

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.0517 sec