[DP] 17. Command 패턴과 Template Functor - 89분
[구성]
[Session 1] Part1. Orientation 1
[Session 1] Part2. Orientation 2
[Session 1] Part3. Abstract Factory 패턴
[Session 1] Part4. Builder 패턴
[Session 1] Part5. Factory Method 패턴
[Session 1] Part6. Prototype 패턴
[Session 1] Part7. Singleton 패턴
[Session 2] Part1. Adapter 패턴
[Session 2] Part2. Bridge 패턴
[Session 2] Part3. Composite 패턴
[Session 2] Part4. Decorator 패턴
[Session 2] Part5. Facade 패턴
[Session 2] Part6. Flyweight 패턴
[Session 2] Part7. Proxy 패턴
[Session 3] Part1. Chain of Responsibility 패턴
[Session 3] Part2. Command 패턴과 Template Functor
[Session 3] Part3. Interpreter 패턴
[Session 3] Part4. Iterator 패턴
[Session 3] Part5. Mediator 패턴
[Session 3] Part6. Memento 패턴
[Session 4] Part1. Observer 패턴
[Session 4] Part2. State 패턴
[Session 4] Part3. Strategy 패턴
[Session 4] Part4. Template Method 패턴
[Session 4] Part5. Visitor 패턴
[Session 4] Part6. 디자인 패턴 요약 및 적용 방안
[패턴 설명]
문법검사와 문자열 패턴 검색을 별개의 클래스로 수행하는 방법?
문법이 복잡할 경우 ... 컴파일러 를 제작할 경우와는 다르게
속도나 효율이 중요하지 않을때...
구조로 보면 composite 패턴으로 볼수 있겠으나, interpreter ㅐ턴은 주어진 문법을 기준으로 클래스를 정의한다는 점이다. 따라서 interpreter패턴은 클래스 구성관계상 composite패턴의 한 예라고 할수 있다.
Flyweight 패턴은 abstract syntax tree의 terminal 심볼들을 공유시 사용가능
interator 패턴은 inpreter 패턴에 의해 구성된 객체 구조를 순회시 사용가능
visitor 패턴은 interpretor 패턴을 구성하는 각 클래스에 대해 모두 정의되어야 하는 interpreter()와 같은 연산을 하나의 클래스 형태로 정의할 수 있도록 해준다.
Interpreter 패턴은 Abstarct Syntax Tree를 사용하지만, 그것을 만드는 방식을 다루지는 않는다. 다시 말해 interpreter 패턴은 파싱을 하지 않는다는 것이다. 따라서 AST는 테이블을 이용한 파서나 손으로 만든 파서또는 client에 의해 생성되어져야 한다.
간단한 문법이 주어졌을때, 파싱과 구현을 한꺼번에 하고 싶을때... 문법에 대해서 1:1로 클래스 구조를 정의하면 된다.


cf) interpreter 방식은 동적으로 실행시키는 것을 의미하고 compiler방식은 이미 만들어놓고 실행하는 것이다. 컴파일 방식에 대해 이야기 한다.
interpreter를 거치기전 미리 변환과정(polish notation = 정규식에서 말하는것)을 거쳐 빨리 실행할 수 있게 할 수도 있습니다.
문법을 변경시키거나 확장시키기 쉽다. 클래스 상속 ...
심지어 automatic code generation도 가능할 수 있다.
[실습문제 ]
XML DTD가 주어졌을때 XML 문서가 DTD로 정의된 문법을 만족하는 지를 검사하는 프로그램 설계를 Interpreter 패턴을 활용하여...
* 없을경우도 있다.
+ 한번이상 나타난다.
오랜만에 보는 정규표현식
결국 XML DTD는 문법이다. yacc에 대해서도 이야기 하는군요. 잠깐동안이지만.
XML DTD의 동적으로 변경될 수 있는데 ... 이를 반영하기 위한 보다 나은 설계는 어떤 것이 좋을 지를 구상하여 보시오.
[구성]
[Session 1] Part1. Orientation 1
[Session 1] Part2. Orientation 2
[Session 1] Part3. Abstract Factory 패턴
[Session 1] Part4. Builder 패턴
[Session 1] Part5. Factory Method 패턴
[Session 1] Part6. Prototype 패턴
[Session 1] Part7. Singleton 패턴
[Session 2] Part1. Adapter 패턴
[Session 2] Part2. Bridge 패턴
[Session 2] Part3. Composite 패턴
[Session 2] Part4. Decorator 패턴
[Session 2] Part5. Facade 패턴
[Session 2] Part6. Flyweight 패턴
[Session 2] Part7. Proxy 패턴
[Session 3] Part1. Chain of Responsibility 패턴
[Session 3] Part2. Command 패턴과 Template Functor
[Session 3] Part3. Interpreter 패턴
[Session 3] Part4. Iterator 패턴
[Session 3] Part5. Mediator 패턴
[Session 3] Part6. Memento 패턴
[Session 4] Part1. Observer 패턴
[Session 4] Part2. State 패턴
[Session 4] Part3. Strategy 패턴
[Session 4] Part4. Template Method 패턴
[Session 4] Part5. Visitor 패턴
[Session 4] Part6. 디자인 패턴 요약 및 적용 방안
[패턴 설명]
문법검사와 문자열 패턴 검색을 별개의 클래스로 수행하는 방법?
문법이 복잡할 경우 ... 컴파일러 를 제작할 경우와는 다르게
속도나 효율이 중요하지 않을때...
구조로 보면 composite 패턴으로 볼수 있겠으나, interpreter ㅐ턴은 주어진 문법을 기준으로 클래스를 정의한다는 점이다. 따라서 interpreter패턴은 클래스 구성관계상 composite패턴의 한 예라고 할수 있다.
Flyweight 패턴은 abstract syntax tree의 terminal 심볼들을 공유시 사용가능
interator 패턴은 inpreter 패턴에 의해 구성된 객체 구조를 순회시 사용가능
visitor 패턴은 interpretor 패턴을 구성하는 각 클래스에 대해 모두 정의되어야 하는 interpreter()와 같은 연산을 하나의 클래스 형태로 정의할 수 있도록 해준다.
Interpreter 패턴은 Abstarct Syntax Tree를 사용하지만, 그것을 만드는 방식을 다루지는 않는다. 다시 말해 interpreter 패턴은 파싱을 하지 않는다는 것이다. 따라서 AST는 테이블을 이용한 파서나 손으로 만든 파서또는 client에 의해 생성되어져야 한다.
간단한 문법이 주어졌을때, 파싱과 구현을 한꺼번에 하고 싶을때... 문법에 대해서 1:1로 클래스 구조를 정의하면 된다.
cf) interpreter 방식은 동적으로 실행시키는 것을 의미하고 compiler방식은 이미 만들어놓고 실행하는 것이다. 컴파일 방식에 대해 이야기 한다.
interpreter를 거치기전 미리 변환과정(polish notation = 정규식에서 말하는것)을 거쳐 빨리 실행할 수 있게 할 수도 있습니다.
문법을 변경시키거나 확장시키기 쉽다. 클래스 상속 ...
심지어 automatic code generation도 가능할 수 있다.
[실습문제 ]
XML DTD가 주어졌을때 XML 문서가 DTD로 정의된 문법을 만족하는 지를 검사하는 프로그램 설계를 Interpreter 패턴을 활용하여...
* 없을경우도 있다.
+ 한번이상 나타난다.
오랜만에 보는 정규표현식
결국 XML DTD는 문법이다. yacc에 대해서도 이야기 하는군요. 잠깐동안이지만.
XML DTD의 동적으로 변경될 수 있는데 ... 이를 반영하기 위한 보다 나은 설계는 어떤 것이 좋을 지를 구상하여 보시오.
'컴퓨터(InfoTech)' 카테고리의 다른 글
| [DP] 20. Mediator 패턴 - 26 분 (0) | 2006/02/16 |
|---|---|
| [DP] 19. Iterator 패턴 - 분 (0) | 2006/02/15 |
| [DP] 18. Interpreter 패턴 - 36 분 (0) | 2006/02/14 |
| [DP] 17. Command 패턴과 Template Functor - 89분 (0) | 2006/02/13 |
| [DP] 16. Chain of Responsibility Patterns - 42 분 (object behavioral) (0) | 2006/02/09 |
| [DP] 15. Structural Patterns 정리 - 15 분 (0) | 2006/02/08 |



