Search

ํผ์‚ฌ๋“œ ํŒจํ„ด

ํผ์‚ฌ๋“œ ํŒจํ„ด (Facade Pattern)

๋ณต์žกํ•œ ์„œ๋ธŒ์‹œ์Šคํ…œ๋“ค์˜ ํ†ตํ•ฉ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜์—ฌ ์‹œ์Šคํ…œ ์‚ฌ์šฉ์„ ์‰ฝ๊ฒŒ ๋งŒ๋“œ๋Š” ํŒจํ„ด์ž…๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํด๋ž˜์Šค์™€ ๊ทธ๋“ค ์‚ฌ์ด์˜ ๋ณต์žกํ•œ ์˜์กด๊ด€๊ณ„๋ฅผ ์ˆจ๊ธฐ๊ณ , ๋Œ€์‹  ๊ฐ„๋‹จํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•จ์œผ๋กœ์จ ํด๋ผ์ด์–ธํŠธ์˜ ์‚ฌ์šฉ์„ ๋‹จ์ˆœํ™”ํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ๋ชฉ์ 

โ€ข
๋ณต์žกํ•œ ์„œ๋ธŒ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ๋‹จ์ˆœํ™”๋œ ์ธํ„ฐํŽ˜์ด์Šค ์ œ๊ณต
โ€ข
์„œ๋ธŒ์‹œ์Šคํ…œ ๊ฐ„์˜ ๊ฒฐํ•ฉ๋„ ๊ฐ์†Œ
โ€ข
ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ธŒ์‹œ์Šคํ…œ ๊ฐ„์˜ ์˜์กด์„ฑ ์ตœ์†Œํ™”

ํŠน์ง•

โ€ข
๋‹จ์ผ ์ง„์ž…์ ์„ ํ†ตํ•œ ์„œ๋ธŒ์‹œ์Šคํ…œ ์ ‘๊ทผ
โ€ข
์„œ๋ธŒ์‹œ์Šคํ…œ์˜ ๋ณต์žก์„ฑ์„ ์บก์Šํ™”
โ€ข
ํด๋ผ์ด์–ธํŠธ ์ฝ”๋“œ ๋‹จ์ˆœํ™”
โ€ข
๋Š์Šจํ•œ ๊ฒฐํ•ฉ ๊ตฌ์กฐ ๊ตฌํ˜„

์˜ˆ์‹œ ์ฝ”๋“œ

// ํผ์‚ฌ๋“œ ํด๋ž˜์Šค public class HomeTheaterFacade { private Light light; private TV tv; private AudioSystem audio; public HomeTheaterFacade(Light light, TV tv, AudioSystem audio) { this.light = light; this.tv = tv; this.audio = audio; } public void watchMovie() { light.dim(); tv.turnOn(); audio.setSurroundSound(); audio.setVolume(10); } public void endMovie() { light.bright(); tv.turnOff(); audio.turnOff(); } }
Java
๋ณต์‚ฌ

์ฝ”๋“œ ์„ค๋ช…

์œ„ ์˜ˆ์‹œ๋Š” ํ™ˆ์‹œ์–ดํ„ฐ ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„ํ•œ ํผ์‚ฌ๋“œ ํŒจํ„ด์˜ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.
โ€ข
HomeTheaterFacade ํด๋ž˜์Šค: ์กฐ๋ช…(Light), TV, ์˜ค๋””์˜ค ์‹œ์Šคํ…œ(AudioSystem)์ด๋ผ๋Š” ์„ธ ๊ฐ€์ง€ ์„œ๋ธŒ์‹œ์Šคํ…œ์„ ํ†ตํ•ฉํ•˜์—ฌ ๊ด€๋ฆฌํ•˜๋Š” ํผ์‚ฌ๋“œ ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค.
โ€ข
watchMovie() ๋ฉ”์„œ๋“œ: ์˜ํ™” ์‹œ์ฒญ์„ ์œ„ํ•œ ๋ชจ๋“  ์„œ๋ธŒ์‹œ์Šคํ…œ์„ ํ•œ ๋ฒˆ์— ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
โ—ฆ
์กฐ๋ช…์„ ์–ด๋‘ก๊ฒŒ ์กฐ์ ˆ
โ—ฆ
TV ์ „์› ์ผœ๊ธฐ
โ—ฆ
์„œ๋ผ์šด๋“œ ์‚ฌ์šด๋“œ ์„ค์ •
โ—ฆ
๋ณผ๋ฅจ ๋ ˆ๋ฒจ ์กฐ์ •
โ€ข
endMovie() ๋ฉ”์„œ๋“œ: ์˜ํ™” ์‹œ์ฒญ ์ข…๋ฃŒ ์‹œ ๋ชจ๋“  ์‹œ์Šคํ…œ์„ ํ•œ ๋ฒˆ์— ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
โ—ฆ
์กฐ๋ช…์„ ๋ฐ๊ฒŒ ์กฐ์ ˆ
โ—ฆ
TV ์ „์› ๋„๊ธฐ
โ—ฆ
์˜ค๋””์˜ค ์‹œ์Šคํ…œ ์ข…๋ฃŒ
์ด์ฒ˜๋Ÿผ ํผ์‚ฌ๋“œ ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜๋ฉด ํด๋ผ์ด์–ธํŠธ๋Š” ๊ฐ ์„œ๋ธŒ์‹œ์Šคํ…œ์„ ๊ฐœ๋ณ„์ ์œผ๋กœ ์ œ์–ดํ•  ํ•„์š” ์—†์ด, ํผ์‚ฌ๋“œ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ฐ„๋‹จํ•œ ๋ฉ”์„œ๋“œ๋งŒ์œผ๋กœ ๋ณต์žกํ•œ ์‹œ์Šคํ…œ์„ ์‰ฝ๊ฒŒ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.