Memento
Memento ํจํด์ ๊ฐ์ฒด์ ๋ด๋ถ ์ํ๋ฅผ ์ ์ฅ(์ค๋ ์ท)ํด๋์๋ค๊ฐ, ํ์ํ ๋ ํด๋น ์ํ๋ฅผ ๋ณต์ํ ์ ์๋๋ก ํ๋ ํจํด์ ๋๋ค. ์ฆ, ๊ฐ์ฒด์ ์ํ๋ฅผ ์ธ๋ถ์ ๋ ธ์ถํ์ง ์๊ณ ์บก์ํํ์ฌ ๋ณด์กดํ๊ณ , ๋์ค์ ์๋ ์ํ๋ก ๋ณต์ํ ์ ์๊ฒ ํ๋ ์ญํ ์ ํฉ๋๋ค.
Originator: ์์ ์ ์ํ๋ฅผ ์์ฑ, ์ ์ฅ, ๋ณต์ํ ์ฑ ์์ด ์๋ ๊ฐ์ฒด์ ๋๋ค.
Memento: Originator์ ๋ด๋ถ ์ํ๋ฅผ ์บก์ํํ ๊ฐ์ฒด๋ก, ์ธ๋ถ์๋ ์ํ์ ๋ํ ์ธ๋ถ ๋ด์ฉ์ด ๊ณต๊ฐ๋์ง ์์ต๋๋ค.
Caretaker: Memento ๊ฐ์ฒด๋ฅผ ๋ณด๊ดํ๋ฉฐ, ํ์ํ ๋ Originator์๊ฒ ์ ๋ฌํ์ฌ ์ํ ๋ณต์์ ์์ฒญํ๋ ์ญํ ์ ํฉ๋๋ค.
How do code?
์ํ ์ ์ฅ: Originator ๊ฐ์ฒด๋ ์์ ์ ํ์ฌ ์ํ๋ฅผ Memento ๊ฐ์ฒด์ ์ ์ฅํ ์ ์์ผ๋ฉฐ, ์ด๋ฅผ Caretaker๊ฐ ๋ณด๊ดํฉ๋๋ค.
์ํ ๋ณต์: ์ ์ฅ๋ Memento ๊ฐ์ฒด๋ฅผ Originator์๊ฒ ์ ๋ฌํ์ฌ, ์ด์ ์ํ๋ก ๋ณต์ํ ์ ์์ต๋๋ค.
์ฅ์ : ๊ฐ์ฒด์ ๋ด๋ถ ์ํ๋ฅผ ์ธ๋ถ์ ๋ ธ์ถํ์ง ์๊ณ ๋ณด์กดํ๋ฉฐ, ์ธ์ ๋ ์ง ํน์ ์์ ์ ์ํ๋ก ๋ณต์ํ ์ ์๊ธฐ ๋๋ฌธ์, ์์ ์ทจ์(undo) ๊ธฐ๋ฅ์ด๋ ์ค๋ ์ท ๊ด๋ฆฌ์ ์ ์ฉํฉ๋๋ค.
Last updated