[DP] 20. Mediator 패턴 - 26 분
[구성]
[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. 디자인 패턴 요약 및 적용 방안
[패턴 설명]

Undo 기능을 구현하려고 할때?
객체는 상태정보를 가진다. 어디에 ? 멤버 변수로 이야기 한다.
이전 값은 어떻게 관리할 것인가? 멤버변수를 하나씩 copy본을 가지고 있어도 되지만, 이건 복잡하고, undo를 여러번 할 경우를 생각해보면... 상당히 복잡해진다.
- Contrait Solver 객체 활용 방식
- 각 객체들의 현재 상태를 저장, 관리하는 방식
- 보다 나은 해결 방법
Memento 객체에 원 객체(Originator)의 내부 상태를 일일이 저장, 관리시켜주는 역할은 원 객체가 수행하도록 함으로써 원 객체의 내부 상태를 다른 객체가 직접 접근할 필요성을 없앨 수 있다.

Memento 클래스는 두가지 범위의 인터페이스를 가져야 한다.
-하나는 Originator 클래스 객체를 위한 것으로 Memento 클래스 객체내의 모든 것을 접근 할 수 있어야 하고,
-다른 하나는 Originator 클래스 객체를 제외한 다른 객체들을 위한 것으로 필요한 인터페이스만 사용할 수 있도록 하는 것이다.
한없이 저장할 것인가?
C++에서 friend 키워드를 정확히 이해할 것 ... 위에 있는 originator 가 마음대로 사용하려면 Memento클래스가 friend로 Originator를 선언해야한다. 친구는 단방향이다란 말이 와닿더라!!
[구성]
[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. 디자인 패턴 요약 및 적용 방안
[패턴 설명]
Undo 기능을 구현하려고 할때?
객체는 상태정보를 가진다. 어디에 ? 멤버 변수로 이야기 한다.
이전 값은 어떻게 관리할 것인가? 멤버변수를 하나씩 copy본을 가지고 있어도 되지만, 이건 복잡하고, undo를 여러번 할 경우를 생각해보면... 상당히 복잡해진다.
- Contrait Solver 객체 활용 방식
- 각 객체들의 현재 상태를 저장, 관리하는 방식
- 보다 나은 해결 방법
Memento 객체에 원 객체(Originator)의 내부 상태를 일일이 저장, 관리시켜주는 역할은 원 객체가 수행하도록 함으로써 원 객체의 내부 상태를 다른 객체가 직접 접근할 필요성을 없앨 수 있다.
Memento 클래스는 두가지 범위의 인터페이스를 가져야 한다.
-하나는 Originator 클래스 객체를 위한 것으로 Memento 클래스 객체내의 모든 것을 접근 할 수 있어야 하고,
-다른 하나는 Originator 클래스 객체를 제외한 다른 객체들을 위한 것으로 필요한 인터페이스만 사용할 수 있도록 하는 것이다.
한없이 저장할 것인가?
C++에서 friend 키워드를 정확히 이해할 것 ... 위에 있는 originator 가 마음대로 사용하려면 Memento클래스가 friend로 Originator를 선언해야한다. 친구는 단방향이다란 말이 와닿더라!!
'컴퓨터(InfoTech)' 카테고리의 다른 글
| photoWorks (0) | 2006/03/02 |
|---|---|
| winmerge (0) | 2006/03/02 |
| [DP] 21. Memento 패턴 - 26 분 (0) | 2006/02/18 |
| [DP] 20. Mediator 패턴 - 26 분 (0) | 2006/02/17 |
| [DP] 19. Iterator 패턴 - 분 (0) | 2006/02/16 |
| [DP] 18. Interpreter 패턴 - 36 분 (0) | 2006/02/15 |



