π 01. Template Methodλ?
μκ³ λ¦¬μ¦μ ꡬ쑰λ₯Ό μλΈ ν΄λμ€κ° νμ₯ν μ μλλ‘ ν
νλ¦ΏμΌλ‘ μ 곡νμ¬ κ΅¬μ²΄μ μΈ λ°©λ²μ μλΈν΄λμ€μκ² μμνλ ν¨ν΄μ΄λ€.
- μΆμν΄λμ€λ ν
νλ¦Ώμ μ 곡νκ³ νμ ν΄λμ€λ ꡬ체μ μΈ μκ³ λ¦¬μ¦μ μ 곡ν©λλ€.
- μ 체μ μΈ λ‘μ§ (ν° ν)μ μμ ν΄λμ€μ μ μλμ΄μμ§λ§ β μΈλΆμ μΈ κ΅¬νμ νμ ν΄λμ€μ λ§‘κ²¨μ Έ μλ ꡬ쑰μ
λλ€.
- μ¦, μμ ν΄λμ€μμ μ²λ¦¬μ νλ¦μ μ μ΄νκ³ , νμν΄λμ€μμ μ²λ¦¬μ λ΄μ©μ ꡬ체ννλ λμμΈ ν¨ν΄μ
λλ€.
-> PPTμμ ν
νλ¦Ώμ λ°κ³ νμν λΆλΆλ§ λ΄μ©μ μ±μ°λ©΄ λλ μν©μ μκ°νλ©΄ λλ€!
<ν΄λμ€ κ΅¬μ‘°λ>
π 02. Template Method μ¬μ© μμ
- νλμ νμΌμ μ½μ΄μ, μ¬μΉμ°μ°μ μννλ μ½λλ₯Ό μμλ‘ λ³΄μ.
01. Template Method μ¬μ© μ
client.class
- ν΄λΌμ΄μΈνΈμμ νμΌμ μ½κ³ , λνκΈ° μ°μ°μ μννλ process λ©μλλ₯Ό μ€νμμΌ κ²°κ³Όλ₯Ό μ»λλ€.
FileProcessor
- txt νμΌμ΄ μλ€κ³ κ°μ νκ³ , νμΌμμ μ«μλ₯Ό νλμ© λΆλ¬μ + κΈ°λ₯Ό μ°μ°νκ³ μλ€.
-> txtνμΌ (5 4 3 2 1) κ°μ !
-> μ΄κ²μ λν λ¬Έμ μ μ, λ§μ½ -, x, % λ±μ μ°μ°μ΄ ν΄λΉ ν΄λμ€μ μΆκ°λλ€κ³ νμμ λ νμΌμ λΆλ¬μ€κ³ μ½μ΄λ€μ΄λ λΆλΆμ΄ μ€λ³΅λλ€.
μ΄λ¬ν, μ ν΄μ§ ν νΉμ νλ¦μ κ³ μ μ μΈ ν
νλ¦ΏμΌλ‘ λκ³ , λ³κ²½λλ μκ³ λ¦¬μ¦(μ¬μΉμ°μ°) μ ꡬνλ§μ νμ ν΄λμ€μ 맑겨λ²λ¦¬λκ² ν
νλ¦Ώ λ©μλ ν¨ν΄μ΄λ€.
02. Template Method μ¬μ© ν
- μ¬μΉμ°μ°μ λΆλΆμ μΆμ λ©μλλ‘ μΆμΆ
FileProcessor
- μ¬μΉμ°μ°μ λΆλΆλ§ abstract λ©μλλ‘ μΆμΆ
νμ ν΄λμ€
- FileProcessorλ₯Ό μμλ°μ abstract λ©μλ ꡬν!
Client
- ν΄λΌμ΄μΈνΈμμλ μνλ κΈ°λ₯μ ꡬνν νμν΄λμ€λ₯Ό νΈμΆνμ¬ κ²°κ³Όκ°μ μ»λλ€.
π 03. Template Method μ₯λ¨μ
- ν
νλ¦Ώ μ½λλ₯Ό μ¬μ¬μ©νκ³ μ€λ³΅μ½λλ₯Ό μ€μΌ μ μλ€.
- ν
νλ¦Ώ μ½λλ₯Ό λ³κ²½νμ§ μκ³ μμμ λ°μμ ꡬ체μ μΈ μκ³ λ¦¬μ¦λ§ λ³κ²½ν μ μλ€.
- λ¨μ
1.리μ€μ½ν μΉν μμΉμ μλ°ν μλ μλ€.
Β Β Β Β -> 리μ€μ½ν μΉνμμΉμ΄λ - 리μ€μ½ν μΉν μμΉμ ν΅μ¬μ λΆλͺ¨ ν΄λμ€μ νλ κ·μ½μ μμ ν΄λμ€κ° μλ°νλ©΄ μ λλ€.
Β Β Β Β -> μμμ λ°μμκ° νμν΄λμ€κ° ν
νλ¦Ώμ μ μν λ©μλλ₯Ό μλͺ» μ€λ²λΌμ΄λ©νμ¬ λΆλͺ¨μ κ·μ½μ μλ°ν κ°λ₯μ±μ΄ μλ€.
Β Β Β Β -> μ½κ² λ§ν΄ λΆλͺ¨ ν΄λμ€μμ μμΌλ‘ κ°μΌνλ μμ
λ©μλλ₯Ό κΈ°λνλλ° νμ ν΄λμ€μμ λ€λ‘ κ°λ²λ¦¬λ μμ
λ©μλλ₯Ό ꡬνν΄μλ μλλ€λ λ§μ΄λ€!
2.μκ³ λ¦¬μ¦ κ΅¬μ‘°κ° λ³΅μ‘ν μλ‘ ν
νλ¦Ώμ μ μ§νκΈ° μ΄λ €μμ§λ€.
π 04. Template Method νΉμ§
- νμ ν΄λμ€μμ νλ¦μ΄ μ§νλμ§ μκ³ λͺ¨λ μκ³ λ¦¬μ¦μ νλ¦μ΄ λΆλͺ¨ ν΄λμ€λ‘ λμ΄κ°κ² λλ€.
μ¦, μ μ΄μ μμ μ΄ μΌμ΄λ¬μΌλ©΄ μ΄λ₯Ό IOC(Inversion of Control) μ΄λΌ λ§νλ€.
μ°Έκ³ μλ£)
https://thalals.tistory.com/435 - νμ°¨κ², μ΄μ¬ν 곡λμ