[์ดํŽ™ํ‹ฐ๋ธŒ ์ž๋ฐ”] ํ”Œ๋ผ์ด์›จ์ดํŠธ ํŒจํ„ด flyWeight pattern

2022. 8. 31. 17:03ใ†JAVA/Effective JAVA

728x90

 

ํ”Œ๋ผ์ด์›จ์ดํŠธ ํŒจํ„ด  Flyweight Pattern

- ๋””์ž์ธ ํŒจํ„ด ์ค‘ ํ•˜๋‚˜๋กœ ๊ฐ์ฒด๋ฅผ ์žฌ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜ 
- ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ณ๊ฒŒ ๋งŒ๋“ค์–ด ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์ค„์ด๊ธฐ ์œ„ํ•œ ํŒจํ„ด 
- ์ž์ฃผ ๋ณ€ํ•˜๋Š” ์†์„ฑ(๋˜๋Š” ์™ธ์ ์ธ ์†์„ฑ)๊ณผ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ์†์„ฑ(๋˜๋Š” ๋‚ด์ ์ธ ์†์„ฑ)์„ ๋ถ„๋ฆฌํ•˜๊ณ  ์žฌ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค. 

 

ํŒจ์ „ ์ ์šฉ ์ „ 

 

ํŒจ์ „ ์ ์šฉ ํ›„ 

fontsize, fontfamliy๋ฅผ ๋ฌถ์–ด์„œ Font๋ผ๋Š” ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค. 

 

 

๊ทธ๋ฆฌ๊ณ  fontFactory์˜ getFont ๋ฉ”์„œ๋“œ๋ฅผ  ๋งŒ๋“ค์–ด์„œ ๋ฐ˜๋ณต๋˜๋Š” ๊ฐ’์€ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ๋‹ค. 

์ด๋•Œ ์ •์  ํŒฉํ„ฐ๋ฆฌ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. 

 

ํ”Œ๋ผ์ด์›จ์ดํŠธ ํŒจํ„ด์€ ๋”ฐ๋กœ ๋””์ž์ธํŒจํ„ด ๊ฐ•์˜์—์„œ ์†Œ๊ฐœ๋ฅผ ํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ํ•ด์„œ ๋‹ค์‹œ ํ•œ๋ฒˆ ๊ณต๋ถ€๋Š” ํ•ด์•ผ๊ฒ ๋‹ค.

๊ทธ๋ƒฅ ์—ฌ๊ธฐ์„œ๋Š” ๊ฐ์ฒด๋ฅผ ์žฌ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ด๊ณ , ์ •์  ํŒฉํ„ฐ๋ฆฌ ๋ฉ”์„œ๋“œ์™€ ๋น„์Šทํ•œ ๊ธฐ๋ฒ•์ด๋ผ๊ณ  ์•Œ๊ณ  ์žˆ๊ธฐ..!!! 

 

 

 

 

 

 

 

 

 

 

 

728x90