More Related Content
Similar to Scala type class pattern (20)
More from Yong Joon Moon (13)
Scala type class pattern
- 6. Trait๋ฅผ object๋ก ์์ํด์ ์ฒ๋ฆฌ
trait์ ์ถ์ ๋ฉ์๋๋ฅผ ์ง์ ํ๊ณ ์ด๋ฅผ ์์ํด
์ ๊ตฌํํ ๋ ๊ฐ์ object๋ฅผ ๋ง๋ค๊ณ ์คํํ๋ค.
- 8. Trait์ ๋๋ฐ๊ฐ์ฒด ์ ์
trait์ ๋๋ฐ ๊ฐ์ฒด์ ํน๋ณํ ํ์
๋งค๊ฐ๋ณ์ ์
์ด ์ ์ํ๊ณ ๋์ผํ ์ด๋ฆ์ผ๋ก ํธ์ถํด์ object
๋ด์ ๋ฉ์๋๋ฅผ ํธ์ถํด๋ ์ฒ๋ฆฌ๊ฐ ๋๋ค.
- 9. ํ์
๋งค๊ฐ๋ณ์๋ฅผ ๊ฐ์ง Trait์ ๋๋ฐ
๊ฐ์ฒด
trait์ ๋๋ฐ ๊ฐ์ฒด๋ฅผ ์ ์ํ๊ณ ๋ด๋ถ์ ๋๋ฐ
๊ฐ์ฒด์ ์ต๋ช
์ธ์คํด์ค๋ฅผ ๋ง๋ค์ด ์ฒ๋ฆฌํ๋ค.
- 11. Trait ์ด์ฉํ ์ต๋ช
๊ฐ์ฒด
trait๋ฅผ ์ ์ํ๊ณ ์ด๋ฅผ ์ด์ฉํด์ ์ค์ new๋ก
์ธ์คํด์ค๋ฅผ ๋ง๋ค๋ ๊ตฌํ๋ ๋ธ๋ก์ ์ ๊ณตํ๋ฉด
์ต๋ช
์ธ์คํด์ค๊ฐ ๋ง๋ค์ด์ง๋ค.
- 13. ์๋ฌต์ ์ฒ๋ฆฌ ํด๋์ค ์ ์
์ธํฐํ์ด์ค๋ฅผ trait์ผ๋ก ์ ์ํ๊ณ ๋๊ฐ์
ํด๋์ค๋ฅผ ์๋ฌต์ ์ผ๋ก ์ ์ํ๋ค.
- 14. ํจ์ ์ ์ ๋ฐ ์ ์์ฒ๋ฆฌ
ํจ์๋ฅผ ์ ์ํ ๋ ์๋ฌต์ ์ผ๋ก trait์ ์ฐ๊ฒฐํ
๋ฉด ์ด ํจ์๋ฅผ ์คํํ ๋ ๋ด๋ถ์ ์๋ฌต์ ๋ฉ์๋
๋ฅผ ํธ์ถํ ์ ์๋ค.
- 18. ์๋ฌต์ ๋งค๊ฐ๋ณ์ ๋๊ฐ ์ง์
ํจ์ ๋ด์ ์๋ฌต์ ๋งค๊ฐ๋ณ์๊ฐ ํ๋์ธ๋ฐ 2
๊ฐ๋ฅผ ์ง์ ํ๋ฉด ์ค์ ๊ฐ์ ์ ๋๋ก ์ฐพ์ ์๊ฐ
์์ด ์ค๋ฅ๋ฅผ ๋ฐ์ํ๋ค.
- 19. ํจ์์๋ ํ๋๋ง ์๋ฌต์ ๋งค๊ฐ๋ณ์
๋ง ์กด์ฌ
ํจ์๋ฅผ ์ ์ํ ๋ ์ ์ผ ์์ ํ๋๋ง ์๋ฌต
์ ๋งค๊ฐ๋ณ์๋ฅผ ์ง์ ํด์ ์ฌ์ฉํ ์ ์๋ค.
- 22. ํ์
ํด๋์ค๋
ํ์
ํด๋์ค๋ ํ์
์ด ๊ฐ์ฒด์ ํด๋์ค๋ฅผ ์ ์ํ๋ ๊ฒ๊ณผ
๊ฐ์ ๋ฐฉ์์ผ๋ก ํ์
์ ํด๋์ค๋ฅผ ์ ์ํฉ๋๋ค. ์ค์นผ๋ผ์
์ ํ์
ํด๋์ค๋ ์ ์ด๋ ํ๋์ ํ์
๋ณ์๋ฅผ ๊ฐ์ง ํน์ฑ
(trait)์ ์๋ฏธํฉ๋๋ค.
- 23. ํ์
ํด๋์ค ํจํด ์ ์ํ๋ ๋ฒ
์๋ฌต์ ์ผ๋ก ์ฒ๋ฆฌํ๊ธฐ ์ํ ํ์
ํด๋์ค ํจ
ํด ์ ์ ์์
ํ์
ํด๋์ค ์ ์ : ํน์ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํ ์ผ๋ฐ์ ์ธ ํน์ง์
ํํํ๋ ๊ฒ
ํ์
ํด๋์ค์ ์ธ์คํด์ค ์ ์ : ํ์ค ํ์
์ ๋ํ ๊ตฌํ์ ๋ฏธ๋ฆฌ ์
์ฑํด ๋๊ฑฐ๋ ์ฐ๋ฆฌ๊ฐ ์ฐ๊ณ ์ ํ๋ ์ปค์คํ
ํ์
์ ๋ํ ๊ตฌํ์ ์
์ ํด ๋์ object
ํ์
ํด๋์ค์ ์ธํฐํ์ด์ค ์ ์ : ์ธํฐํ์ด์ค๋ ์ฌ์ฉ์๋ค์ด ์ฌ์ฉ
ํ๊ฒ ๋ ๋ฉ์๋๋ฅผ ์ ์ ํ๋ ๊ฒ
- 25. ์๋ฌต์ ํ์
ํด๋์ค์ ๊ฐ์ฒด ์์ฑ
trait์ ์ถ์ ๋ฉ์๋๋ฅผ ์ ์ํ๊ณ ๋๋ฐ๊ฐ์ฒด
๋ฅผ ์ด์ฉํด์ ๋ด๋ถ์ ๋ก์ง์ ๋ฃ๋๋ค.
- 26. ์ธํฐํ์ด์ค ์์ฑ ๋ฐ ํ์ฉ
์ธํฐํ์ด์ค ๋ฉ์๋ ๋ด๋ถ์ ์๋ฌต์ ์ผ๋ก ํ์
ํด๋์ค๋ฅผ ์ง์ ํ๊ณ format ๋ฉ์๋๋ฅผ ํธ์ถํ๋ฉด
ํ์
์ ๋ง์ถฐ ์ฒ๋ฆฌ๋๋ค.
- 28. ํ์
์ ์ง์ ํ๊ณ ์๋ฌต์ ๋๋ฐ๊ฐ์ฒด
์ง์
trait๋ฅผ ํตํด ํ์
๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ณ ๋ด๋ถ์ ์ผ๋ก
์๋์ผ๋ก ์ฐ๊ฒฐ๋ object๋ฅผ ์๋ฌต์ ์ผ๋ก ์ง์ ํ
๋ค.
ํ์
ํด๋์ค ์ง์
์๋ฌต์ ์ผ๋ก ์ฐ๊ฒฐ
๊ฐ์ฒด ์ง์
- 29. ํจ์๋ฅผ ์ธํฐํ์ด์ค๋ก ์ฌ์ฉํ๊ธฐ
ํจ์ ์ ์์ ์ค์ ์คํํ ํ์
ํด๋์ค๋ฅผ ์๋ฌต
์ ์ผ๋ก ์ง์ ํ๋ฉด ํจ์์ ๋ค์ด์ค๋ ํ์
์ ๋ฐ
๋ผ ๋ฉ์๋๊ฐ ํธ์ถ๋์ด ์ฒ๋ฆฌ๋๋ค.
ํจ์์ ์๋ฌต์ ํ
์
ํด๋์ค ์ง์
ํจ์ ์คํํ๋ฉด ํ
์
์ ๋ง๋ object๊ฐ
์๋์ผ๋ก ์ฐ๊ฒฐ๋๋ค