Share
Sign In

파사드 패턴

파사드 패턴은 복잡한 클래스에 대해 단순화된 인터페이스를 제공한다. 즉 여러 클래스에 대한 진입점 역할을 한다. 사용하기 쉽고, 구성 요소 간의 결합을 낮춘다. 그리고 개별 클래스의 역할을 보다 명확히 할 수 있다.
보통 복잡한 API, 라이브러리, 시스템의 사용을 단순화하는 데 사용한다.
class TV { turnOn() { console.log('Turning on TV'); } turnOff() { console.log('Turning off TV'); } } class SoundSystem { turnOn() { console.log('Turning on sound system'); } turnOff() { console.log('Turning off sound system'); } setVolume(level) { console.log(`Setting sound system volume to ${level}`); } } class DVDPlayer { turnOn() { console.log('Turning on DVD player'); } turnOff() { console.log('Turning off DVD player'); } play(movie) { console.log(`Playing ${movie} on DVD player`); } } class HomeTheaterFacade { constructor(tv, soundSystem, dvdPlayer) { this.tv = tv; this.soundSystem = soundSystem; this.dvdPlayer = dvdPlayer; } watchMovie(movie) { console.log(`Watching ${movie}...`); this.tv.turnOn(); this.soundSystem.turnOn(); this.soundSystem.setVolume(10); this.dvdPlayer.turnOn(); this.dvdPlayer.play(movie); } stopMovie() { console.log('Stopping movie...'); this.tv.turnOff(); this.soundSystem.turnOff(); this.dvdPlayer.turnOff(); } } const tv = new TV(); const soundSystem = new SoundSystem(); const dvdPlayer = new DVDPlayer(); const homeTheater = new HomeTheaterFacade(tv, soundSystem, dvdPlayer); homeTheater.watchMovie('Star Wars'); homeTheater.stopMovie();