Last updated
Last updated
μ΄λ€ νλ‘κ·Έλ¨λ€μμλ κ°μ²΄κ° μνλ₯Ό κ°μ§λ©°
, νλ‘κ·Έλ¨μ΄ μνλλ©° κ°μ²΄μ μνκ° κ³μ λ³ννκ³
, μ΄μ μνλ‘μ 볡μμ μν΄ μ΄ μν μ 보λ₯Ό μ μ₯
ν΄μΌ ν μλ μλ€. μ£Όλ‘ κ²μ νλ‘κ·Έλ¨ λ±μ΄ κ·Έλ¬νλ€.
μ΄ λ μν μ 보λ₯Ό λ€λ₯Έ λ°μ΄ν°μ ν¨κ» ν ν΄λμ€μ μ μ₯νλ€λ©΄, λ€μμ λ¬Έμ μ μ΄ λ°μνλ€.
ν΄λμ€κ° κ±°λν΄μ Έ SRPλ₯Ό μλ°°νκ² λλ€.
μν μ 보λ μμ£Ό λ³ννλ€. μ΄λ λ³ννμ§ μλ λ°μ΄ν°μλ μ§μμ μΌλ‘ μν₯μ λ―ΈμΉκ² λλ€.
μ΄λ¬ν λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν ν¨ν΄μ΄ λ°λ‘ λ©λ©ν ν¨ν΄
μ΄λ€.
λ©λ©ν ν¨ν΄μ μν μ 보λ₯Ό λ³λμ ν΄λμ€λ‘ λΆλ¦¬νμ¬ κ΄λ¦¬νλ€. μ΄ ν΄λμ€λ‘λΆν° μμ±λ κ°μ²΄λ₯Ό Memento κ°μ²΄λΌκ³ λΆλ₯΄λ©°, Memento κ°μ²΄μ λν μμ± λ° μ κ·Ό κΆνμ μνμ μ μμ μ ν΄λμ€λ§μ΄ κ°μ§λ€. μ¦, μΈλΆμμλ λ κ°μ§ ν΄λμ€κ° λ§μΉ νλμ ν΄λμ€μΈ κ²μ²λΌ λμνλ€.
Originator
- Memento κ°μ²΄λ₯Ό μμ±
νκ³ , νΉμ μνλ‘ λλμκ°κ³ μ ν λ μ΄λ₯Ό μ΄μ©
νλ€.
Memento
- Originator κ°μ²΄μ μν μ 보λ₯Ό μ μ₯νλ€.
CareTaker
- Memento κ°μ²΄λ€μ 보κ΄
νκ±°λ κ΄λ¦¬
ν μ μλ€. μμ±, λ΄λΆ μ 보(μν) μ κ·Όμ λΆκ°νλ€.
λ©λ©ν λ₯Ό ν΅ν΄ μ΄λ£¨κ³ μ νλ κ°μ₯ μ€μν μμΉμ SRPμ΄λ€. μΈλΆμμλ λ ν΄λμ€κ° νλμΈ κ²μ²λΌ 보μμλ μ΄λ κ² ν΄λμ€λ₯Ό λΆλ¦¬νλ μ΄μ λ μ± μμ λΆλ¦¬νμ¬ λΆνμν μ½λ λ³κ²½μ λ§κ³ μ½λ κ°λ μ±μ λμ΄κΈ° μν¨μ΄λ€.
컀맨λ ν¨ν΄(Command Pattern)μμ λλ리기 μ°μ°μ μννκΈ° μν΄ ν΄λΉ ν¨ν΄μ μ΄μ©ν μ μλ€.
λ°λ³΅μ ν¨ν΄(Iterator Pattern)μμ Iteratorμ μν μ 보λ₯Ό λ§λ€κΈ° μν΄ ν΄λΉ ν¨ν΄μ μ΄μ©ν μ μλ€.
νλΌμ΄μ¨μ΄νΈ ν¨ν΄κ³Ό λΉκ΅ν΄λ³΄λ©΄ μ’λ€. νλΌμ΄μ¨μ΄νΈ ν¨ν΄μ 곡ν΅μ λΆλΆμ κ΄λ¦¬νλ ν΄λμ€λ₯Ό λ³λλ‘ λΆλ¦¬νμ¬ μ€λ³΅λ λ°μ΄ν°λ₯Ό μ€μ¬ λ©λͺ¨λ¦¬ λλΉλ₯Ό μ€μ΄κΈ° μν¨μ΄λΌλ©΄, λ©λ©ν ν¨ν΄μ μν μ 보λ₯Ό λ³λλ‘ λΆλ¦¬νμ¬ λ무 λ§μ μ± μμ λΆλ¦¬νκ³ μνλ₯Ό μ μ₯, μΆμ νκΈ° μν¨μ΄λ€.