Template method
ํ์ค ์์ฝ: ์๊ณ ๋ฆฌ์ฆ์ ์ผ๋ถ ๋จ๊ณ๋ฅผ ์๋ธ ํด๋์ค์์ ์ ์ํ๋ค.
์๋
super class์ ๊ธฐ๋ณธ์ ์ธ ๋ก์ง์ ํ๋ฆ์ ์ ์ํ๊ณ
๊ทธ ๊ธฐ๋ฅ์ ์ผ๋ถ๋ฅผ ์ถ์๋ฉ์๋๋ ์ค๋ฒ๋ผ์ด๋ฉ์ด ๊ฐ๋ฅํ protected method๋ฑ์ผ๋ก ๋ง๋ ๋ค,
sub class์์ ์ด๋ฐ ๋ฉ์๋๋ฅผ ํ์์ ๋ง๊ฒ ๊ตฌํํด์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
์๊ณ ๋ฆฌ์ฆ์ ๊ตฌ์กฐ(๋ผ๋)๋ ๊ทธ๋๋ก ๋๋๊ณ , ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ ๋จ๊ณ์ฒ๋ฆฌ๋ฅผ ์๋ธ ํด๋์ค์์ ์ฌ์ ์ ํ ์ ์๊ฒ ํจ.
ํน์ง
๊ธฐ๋ณธ ์๊ณ ๋ฆฌ์ฆ(๊ตฌ์กฐ, ๋ผ๋)์ ๋ํ ์ ์๋ super class(abstract, final) ์ ์ ์ํด ๋๊ณ ,
์ค์ง์ ์ธ behavior๋ ํ์ ํด๋์ค์์ implementsํ๋๋ก ํ๋ค.
์ฉ์ด
ํ ํ๋ฆฟ ๋ฉ์๋
ํ์ ์ฒ๋ฆฌ ์ ์ฐจ๋ฅผ ์ ์ํ ๋ฉ์๋
์๋ธ ํด๋์ค๊ฐ ์ค๋ฒ๋ผ์ด๋ ํ๋ ์ถ์๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์๊ณ ๋ฆฌ์ฆ์ ์ ์ํ๋ ๋ฉ์๋.
hook ๋ฉ์๋(hook operation)
super class์์ ๋ํดํธ ๊ธฐ๋ฅ์ ์ ์ํด ๋๊ฑฐ๋ ๋น์๋๋ค๊ฐ, ์๋ธํด๋์ค์์ ์ ํ์ ์ผ๋ก override ํ ์ ์๋๋ก ๋ง๋ค์ด๋ ๋ฉ์๋.
์ฅ๋จ์
์ฅ์
์ฝ๋ ์ค๋ณต ๊ฐ์
์์ ํด๋์ค์ ์ญํ ์ ๊ฐ์ ์ํค๋ฉด์ ํต์ฌ ๋ก์ง ๊ด๋ฆฌ ์ฉ์ด
๊ฐ์ฒด ์ถ๊ฐ ๋ฐ ํ์ฅ์ด ์ฝ๊ฒ ๊ฐ๋ฅ
๋จ์
์ถ์ ๋ฉ์๋๊ฐ ๋ง์์ง๋ฉด, class ๊ด๋ฆฌ ๋ณต์กํด์ง
์ถ์ ํด๋์ค์ ๊ตฌํํด๋์ค๊ฐ์ ๋ณต์ก์ฑ ์ฆ๋
์์ ์์ค
Super class ์
Sub class ์
[์ฐธ์กฐ ์๋ฃ]
ํ ๋น์ ์คํ๋ง 3.1
Last updated