๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90

์ดํŽ™ํ‹ฐ๋ธŒ ์ž๋ฐ”1

[JAVA] ์ •์  ํŒฉํ„ฐ๋ฆฌ ๋ฉ”์„œ๋“œ(static factory method) ๋ž€? ๊ฐ์ฒด ์ƒ์„ฑ์˜ ์บก์Šํ™”์™€ ์ •์  ํŒฉํ„ฐ๋ฆฌ ๋ฉ”์„œ๋“œ ๊ฐœ์š” ๊ฐ์ฒด ์ƒ์„ฑ ์‹œ ์บก์Šํ™”๋Š” ์ด๋ฆ„์žˆ๋Š” ์ƒ์„ฑ์ž ๋Œ€์‹  ์ •์  ํŒฉํ„ฐ๋ฆฌ ๋ฉ”์„œ๋“œ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์œ ์—ฐ์„ฑ๊ณผ ํ™•์žฅ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ์žฅ์ ๊ณผ ๋‹จ์ , ๊ทธ๋ฆฌ๊ณ  ๊ด€๋ จ๋œ ์ฃผ์ œ๋“ค์„ ๋‹ค๋ฃจ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์„œ๋Š” Joshua Bloch์˜ "์ดํŽ™ํ‹ฐ๋ธŒ ์ž๋ฐ” 3ํŒ"์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์žฅ์  1. ์ด๋ฆ„์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. ์ •์  ํŒฉํ„ฐ๋ฆฌ ๋ฉ”์„œ๋“œ๋Š” ์ด๋ฆ„์„ ๊ฐ€์ง€๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ˜ํ™˜๋  ๊ฐ์ฒด์˜ ํŠน์„ฑ์„ ์‰ฝ๊ฒŒ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ฐ€๋…์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์— ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. class Company { private Company() {} // ์ด๋ฆ„์„ ํ†ตํ•œ ๊ฐ€๋…์„ฑ ํ–ฅ์ƒ public static Company createNewTeam() { // ๊ฐ์ฒด ์ƒ์„ฑ ๋กœ์ง } } 2. ํ˜ธ์ถœ๋  ๋•Œ๋งˆ๋‹ค ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒˆ๋กœ ์ƒ์„ฑํ•˜์ง€ ์•Š์•„.. 2022. 11. 3.