State ν¨ν΄
State ν¨ν΄ μκ°
- State ν¨ν΄μ κ°μ²΄μ μνλ₯Ό κ΄λ¦¬νκ³ ν΄λΉ μνμ λ°λΌ κ°μ²΄μ νλμ λ³κ²½νλ λμμΈ ν¨ν΄μ λλ€.
- μ΄ ν¨ν΄μ μ¬μ©νλ©΄ κ°μ²΄μ μν μ μ΄λ₯Ό μΊ‘μννκ³ , μ μ§λ³΄μμ νμ₯μ΄ μ¬μ΄ ꡬ쑰λ₯Ό λ§λ€ μ μμ΅λλ€.
μ¬μ© μ΄μ
- κ°μ²΄κ° μ¬λ¬ μνμ λ°λΌ λ€λ₯Έ νλμ ν΄μΌ ν λ State ν¨ν΄μ μ¬μ©νλ©΄ μ½λ μ μ§λ³΄μκ° μ©μ΄νλ©° κ°λ μ±μ΄ λμμ§λλ€.
μ₯μ
- μ½λμ κ°λ μ±κ³Ό μ μ§λ³΄μμ±μ΄ ν₯μλ©λλ€.
- κ°μ²΄μ μν μ μ΄λ₯Ό λͺ ννκ² κ΄λ¦¬ν μ μμ΅λλ€.
λ¨μ
- μν ν΄λμ€κ° λ§μμ§μλ‘ ν΄λμ€μ μκ° λμ΄λ μ μμ΅λλ€.
μ€ν 리 : μν κ³μ’ μν κ΄λ¦¬
μ΄ μμ λ μν κ³μ’μ μνλ₯Ό κ΄λ¦¬νλ ν¨ν΄μ ꡬνν κ²μ λλ€. κ³μ’λ λ κ°μ§ μνλ₯Ό κ°μ§λλ€.
- μ΄λ¦° μν (Open State): μ κΈκ³Ό μΆκΈμ΄ κ°λ₯ν©λλ€.
- λκ²°λ μν (Frozen State): μ κΈκ³Ό μΆκΈμ΄ λΆκ°λ₯νλ©°, κ³μ’ νμΈκ³Ό μν λ³κ²½λ§ κ°λ₯ν©λλ€.
State ν¨ν΄ UML λ€μ΄μ΄κ·Έλ¨
- Context μΈν°νμ΄μ€: κ³μ’ μνλ₯Ό κ΄λ¦¬νλ λ©μλλ₯Ό μ μν©λλ€.
- setBalance(): κ³μ’ μμ‘ μ€μ
- getBalance(): κ³μ’ μμ‘ μ‘°ν
- checkBalance(): κ³μ’ νμΈ
- changeState(): κ³μ’ μν λ³κ²½
- BankAccount ν΄λμ€: Context μΈν°νμ΄μ€λ₯Ό ꡬννμ¬ μν κ³μ’λ₯Ό νννκ³ GUIλ‘ μν κ΄λ¦¬λ₯Ό ν©λλ€.
- AccountStatus μΈν°νμ΄μ€: κ³μ’μ λμμ μ μνλ λ©μλλ₯Ό μ μΈν©λλ€.
- deposit(): μ κΈ
- withdraw(): μΆκΈ
- verifyAccount(): κ³μ’ νμΈ
- freezeAccount(): κ³μ’ λκ²°
- OpenState ν΄λμ€: "μ΄λ¦° μν"λ₯Ό λνλ λλ€. μ κΈ, μΆκΈ, κ³μ’ νμΈ, κ³μ’ λκ²° λ©μλλ₯Ό ꡬνν©λλ€.
- FrozenState ν΄λμ€: "λκ²°λ μν"λ₯Ό λνλ λλ€. μ κΈκ³Ό μΆκΈ λ©μλλ λμνμ§ μμΌλ©°, κ³μ’ νμΈκ³Ό κ³μ’ λκ²° λ©μλλ§ κ°λ₯ν©λλ€.
μ€ν κ²°κ³Ό
Frozen State
- κ³μ’κ° λκ²°λ μνμ λλ€. Depositμ Withdrawκ° λΆκ°λ₯ν©λλ€.
- VerifyAccount: κ³μ’ μνλ₯Ό νμΈν μ μμ΅λλ€.
- OpenAccount: κ³μ’λ₯Ό μ΄λ¦° μνλ‘ λ³κ²½ν μ μμ΅λλ€.
Open State
- κ³μ’κ° μ΄λ¦° μνμ λλ€. Depositμ Withdrawκ° κ°λ₯ν©λλ€.
- VerifyAccount: κ³μ’ μνλ₯Ό νμΈν μ μμ΅λλ€.
- FreezeAccount: κ³μ’λ₯Ό λκ²° μνλ‘ λ³κ²½ν μ μμ΅λλ€.
'Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JAVA] λμμΈ ν¨ν΄ - Visitor ν¨ν΄ (0) | 2024.01.18 |
---|---|
[JAVA] λμμΈν¨ν΄ - Proxy ν¨ν΄ (0) | 2024.01.18 |